例外処理
VB6では例外処理try-catch-finallyをサポートしてないんで、
擬似的にエミュレートしてみました。
・Form1.frm
Option Explicit ' フォームロードイベントハンドラ Private Sub Form_Load() ' try { On Error GoTo Catch: Dim msg As String msg = "" Call PrintMessage(msg) GoTo Finally: ' } ' catch(...) { Catch: Debug.Print "Raise Error !!" Debug.Print "Number : " & Err.Number Debug.Print "Description : " & Err.Description Debug.Print "Source : " & Err.Source ' エラー番号ごとの処理 Select Case Err.Number Case ApplicationErrorCode.InvalidArgument ' TODO: Case Else ' TODO: End Select ' } ' finally { Finally: ' } End Sub ' メッセージを出力するメソッド Public Sub PrintMessage(ByVal msg As String) ' パラメータチェック If msg = vbNullString Then Err.Clear Call Err.Raise(ApplicationErrorCode.InvalidArgument, "Project1.Form1", "引数が不正です。") End If Debug.Print msg End Sub
・modErrorContants.bas
Option Explicit Private Const ERROR_CODE_BASE = vbObjectError + 512 Public Enum ApplicationErrorCode ZeroDivid = ERROR_CODE_BASE InvalidOperation = ERROR_CODE_BASE + 1 InvalidArgument = ERROR_CODE_BASE + 2 ' ... ' ... いろいろエラーコードを以下に定義 ' ... End Enum
未だに会社でVB6で開発しています。。。orz
でも、意外と楽しかったりする。w