On Error ステートメントを使ったエラー処理 (3個) (SNo.070) 1.On Error Resume Next ステートメントの使用例 2.On Error GoTo ステートメントの使用例 3.On Error GoTo 0 ・ On Error GoTo -1 |
|
使用コントロール | Button2 Button3 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.On Error Resume Next ステートメントの使用例
Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click 'On Error Resume Next ステートメントの使用例 'ランタイム エラーが発生すると、エラーが発生したステートメントの '直後のステートメントに制御が移り、そのステートメントから実行が '継続されます。オブジェクトにアクセスする場合は、On Error GoTo 'ではなく、この形式を使用してください。 On Error Resume Next '以下エラーの起きそうな処理(又は通常の処理)を記入 '存在しないファイルを開きエラーを発生させる Dim sr As New System.IO.StreamReader("test.txt", System.Text.Encoding.Default) MessageBox.Show("エラーが発生しても次の処理をします。") 'エラーが発生した事を確認する If Err.Number <> 0 Then 'エラーの内容を表示 MessageBox.Show(Err.Description, "エラーが発生しました。") 'Err オブジェクトのすべてのプロパティの設定値をクリアします Err.Clear() End If 'On Error Resume Next ステートメントは、ランタイム エラーを発生させた 'ステートメントの直後にあるステートメント、または、On Error Resume Next 'ステートメントが入っているプロシージャから最後に呼び出しを行ったステートメントの '直後のステートメントを使用して、実行を継続させます。 'これにより、ランタイム エラーが発生しても処理を続けることができます。 End Sub |
|
2.On Error GoTo ステートメントの使用例 Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click ''On Error GoTo ステートメントの使用例 'On Error GoTo ステートメントは、例外クラスに関係なく 'すべてのエラーをトラップします。 On Error GoTo ErrorHandler '以下エラーの起きそうな処理(又は通常の処理)を記入 '存在しないファイルを開きエラーを発生させる Dim sr As New System.IO.StreamReader("test.txt", System.Text.Encoding.Default) MessageBox.Show("エラー処理により復帰しました。") Exit Sub ErrorHandler: 'エラー処理コードを記入 'エラーが発生した事を確認する If Err.Number <> 0 Then 'エラーの内容を表示 MessageBox.Show(Err.Description) 'Err オブジェクトのすべてのプロパティの設定値をクリアします Err.Clear() End If 'エラーが発生したステートメントの直後のステートメントに制御を移したい場合 Resume Next End Sub |
|
3.On Error GoTo 0 ・ On Error GoTo -1 On Error GoTo 0 現在のプロシージャで有効になっていたエラーハンドラーを無効にし、Nothing にリセットされます。 On Error GoTo -1 現在のプロシージャで有効になっていた例外を無効にし、Nothing にリセットされます。 等も使用できます。 詳しくは、ヘルプで On Error を調べて下さい。 |
|
尚、これらのエラー処理は、VB6.0 時代のもので、.NET では[例外処理]と呼ばれる機能を使ってエラー処理をします。 従って、次に紹介する[構造化例外処理例]の方でエラー処理をするようにして下さい。 |