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