玄関へお回り下さい。
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 では[例外処理]と呼ばれる機能を使ってエラー処理をします。
従って、次に紹介する[構造化例外処理例]の方でエラー処理をするようにして下さい。





2004/05/08
2005/10/01


VBレスキュー(花ちゃん)
VB.NET2003  VB2005