この記事は2018年10月24日に投稿しました。
目次
決定版 Visual Basic6.0―アプリケーション開発とプログラミング
- 作者: 阪口良史,中山浩太郎,吉田博哉,藤田勇一,吉川弘一郎,吉田充宏,田中成典
- 出版社/メーカー: 共立出版
- 発売日: 2000/06/01
- メディア: 単行本
- クリック: 2回
- この商品を含むブログを見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているVB6のお話です。
2. エラー処理
2-1. エラーステートメント
VB6でエラー処理を行うには、以下のエラーステートメントを使用します。
On Error GoTo <ラベル名> ステートメント
エラールーチンを有効にします。
実行時エラーが発生すると、指定したラベル名の処理を行います。On Error GoTo 0 ステートメント
エラールーチンを無効にします。
実行時エラーが発生しても、エラー処理しません。On Error Resume Next ステートメント
実行時エラーが発生しても、エラーが発生した次の行から処理を継続します。On Error GoTo <ラベル名> ステートメント + Resume Nextステートメント
エラールーチンを有効にします。
実行時エラーが発生すると、指定したラベル名の処理を行います。
エラー処理後、処理を継続したい場合、Resume Nextステートメントを呼び出し、処理を継続します。
2-2. Errオブジェクト
実行時エラーに関する情報は、Errオブジェクトに設定されます。
以下はErrオブジェクトに設定される情報です。
プロパティ名 | 内容 |
---|---|
Number | エラー番号 |
Description | エラー内容 |
Source | エラー発生元のオブジェクト名 |
LastDLLError | DLL呼び出しによるエラーコード |
またErrオブジェクトには、以下の機能があります。
関数名 | 機能 |
---|---|
Clear | エラー情報をクリアします |
Raise | 実行時エラーを生成します |
2-3. 実装例
On Error GoTo <ラベル名> ステートメント
Private Sub Command1_Click() '実行時エラーが発生した場合、ErrorHandlerラベルの処理を行います。 On Error GoTo ErrorHandler ’例)実行時エラーが起きる処理 Dim x As Integer x = x / 0 Exit Sub ErrorHandler: 'ここでエラー処理を行ってください。 ’例)エラー情報を表示します。 Call MsgBox("エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description) End Sub
On Error GoTo 0 ステートメント
Private Sub Command1_Click() '実行時エラーが発生した場合、ErrorHandlerラベルの処理を行います。 On Error GoTo ErrorHandler ’例)実行時エラーが起きる処理 'このエラーはハンドリングされます。 Dim x As Integer x = x / 0 On Error GoTo 0 'これ以降で発生した実行時エラーはハンドリングされません。 ’例)実行時エラーが起きる処理 'このエラーはハンドリングされません。 Dim y As Integer y = y / 0 Exit Sub ErrorHandler: 'ここでエラー処理を行ってください。 ’例)エラー情報を表示します。 Call MsgBox("エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description) End Sub
On Error GoTo Resume Next ステートメント
Private Sub Command1_Click() '実行時エラーが発生しても処理を継続します。 On Error Resume Next ’例)実行時エラーが起きる処理 'このエラーは無視されます。 Dim x As Integer x = 1 / 0 '実行時エラーが起きても、次の処理が実行されます。 Call MsgBox("処理を継続します") End Sub
On Error GoTo <ラベル名> ステートメント + Resume Nextステートメント
Private Sub Command1_Click() '実行時エラーが発生した場合、ErrorHandlerラベルの処理を行います。 On Error GoTo ErrorHandler ’例)実行時エラーが起きる処理 Dim x As Integer x = x / 0 '処理を継続します。 Call MsgBox("処理を継続します") Exit Sub ErrorHandler: 'ここでエラー処理を行ってください。 ’例)エラー情報を表示します。 Call MsgBox("エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description) 'エラーが発生した行の次の行から処理を継続します。 Resume Next End Sub
4. おわりに
VB6にJavaのような例外処理があるとは思いませんでした。
結構便利に使える印象です。
残念ながら業務で見たコードはほとんどエラー処理されていませんでしたが、自分で組む時はきちんとエラー処理したいと思います。
- 作者: 川口輝久,河野勉
- 出版社/メーカー: 技術評論社
- 発売日: 1999/04
- メディア: 単行本
- 購入: 2人 クリック: 16回
- この商品を含むブログ (3件) を見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688