00001 ' Attribute VB_Name = "ScriptErrorHandler" 00002 '------------------------------------------------- 00003 '! @brief エラー処理 00004 '------------------------------------------------- 00005 Class ScriptErrorHandler 00006 Public ScriptName 00007 00008 '------------------------------------------------- 00009 '* エラー番号 00010 '* 通常はErr.Number 00011 '------------------------------------------------- 00012 Public ErrorNumber 00013 '------------------------------------------------- 00014 '* エラー内容 00015 '* 通常はErr.Description 00016 '------------------------------------------------- 00017 Public ErrorDescription 00018 '------------------------------------------------- 00019 '* エラーが発生したメソッド 00020 '------------------------------------------------- 00021 Public MethodName 00022 00023 '------------------------------------------------- 00024 '* 初期化(on errorによらない場合の初期化) 00025 '------------------------------------------------- 00026 Public Sub Init(num,desc) 00027 ErrorNumber = num 00028 ErrorDescription = desc 00029 End Sub 00030 00031 '------------------------------------------------- 00032 '* エラー処理 00033 '* @param method エラーが発生したメソッド 00034 '* @param doSendMail エラー通知を送信するフラグ 00035 '------------------------------------------------- 00036 Public Sub Error(method,doSendMail) 00037 On Error Goto 0 00038 ScriptName = WScript.ScriptName 00039 MethodName = method 00040 writeLog 00041 if(doSendMail) Then 00042 sendMail 00043 End If 00044 End Sub 00045 '------------------------------------------------- 00046 '* ログ出力 00047 '------------------------------------------------- 00048 Sub writeLog() 00049 Logger.Error "At " & ScriptName & "#" & MethodName 00050 Logger.Error "Number=" & ErrorNumber & ",Description=" & ErrorDescription 00051 End Sub 00052 '------------------------------------------------- 00053 '* エラー通知送信 00054 '------------------------------------------------- 00055 Sub sendMail() 00056 Dim mailer 00057 Set mailer = new Mail 00058 Dim msg 00059 Set msg = new MailMessage 00060 msg.AddFromAddress ScriptProperties.Item("errormail.from") 00061 msg.AddToAddress ScriptProperties.Item("errormail.to") 00062 00063 msg.Subject = ScriptProperties.Item("errormail.subject") & ":" & ScriptName 00064 00065 msg.Body = ScriptName & "#" & MethodName & "においてエラーが発生しました。" & vbNewLine 00066 msg.Body = msg.Body & "Error Number: " & ErrorNumber & vbNewLine 00067 msg.Body = msg.Body & "Error Description: " & ErrorDescription & vbNewLine 00068 00069 mailer.Send Array(msg) 00070 Set mailer = Nothing 00071 End Sub 00072 '------------------------------------------------- 00073 '* オブジェクト初期化 00074 '------------------------------------------------- 00075 Public Sub Class_Initialize 00076 ErrorNumber = Err.Number 00077 ErrorDescription = Err.Description 00078 MethodName = "" 00079 ScriptName = "" 00080 End Sub 00081 '------------------------------------------------- 00082 '* オブジェクト破棄 00083 '------------------------------------------------- 00084 Public Sub Class_Terminate 00085 End Sub 00086 00087 End Class