玄関へお回り下さい。
構造化例外処理を利用したエラー処理例 (1個)             (SNo.070)
使用コントロール Button4  
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
  

Visual Basic .NET では以下のような 「例外処理」 を利用することができます。

  Try
      ' エラーの起きそうな処理
  Catch
      ' エラー処理コード
  End Try
又は、


 Sub TestVBNET()
    Try
       ' ここで、エラー発生の可能性がある
       ' 任意のアクションを実行します。
    Catch
       ' ここで、Try ブロックで発生した
       ' 例外を処理します。
    Finally
       ' ここで、クリーンアップコードを実行します。
    End Try
 End Sub


例外処理は、見やすい、柔軟な例外処理が可能、ネストが可能、例外オブジェクトの利用などの特徴を持ちます。
これにより、より高度なエラー処理が可能になります。
ただし、同じプロシージャの中で、エラー処理と例外処理の両方を利用することはできません。

★ 構造化例外処理を利用したエラー処理例

Private Sub Button4_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button4.Click
'構造化例外処理例
   
Dim sr As System.IO.StreamReader
   
Dim fileOpen As Boolean = True

   
Try
       ' ここにエラー発生の可能性があるコードを記入します。

        '存在しないファイルを開きエラーを発生させる
        sr = 
New System.IO.StreamReader("test.txt", System.Text.Encoding.Default)

   
Catch ex As Exception   'Catch と共に使用して、キャッチされたエラーを指定します
        ' ここに、Try ブロックで発生したエラー処理コードを記入します。

        MessageBox.Show(ex.Message)     
'現在の例外を説明するメッセージを表示
        '下記のように入れ子にもできます
       
Try
            sr = 
New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default)
      '下記は実際に存在するファイルでテストして下さい。
            'sr = New System.IO.StreamReader("test.txt", System.Text.Encoding.Default) 
       
Catch
            MessageBox.Show("正しいファイル名を選択してやり直して下さい。")
            fileOpen = 
False
       
End Try
   
Finally
    'Finally ステートメント : 省略できます。
    'Try ステートメントの実行が終了する時は何時でも Finally ブロックが実行されます

       
If fileOpen Then
            '例外の有無に関係なく実行したいコードを記入します。
            Debug.WriteLine(sr.ReadToEnd)
            'ストリームを閉じ、システム リソースを解放
            sr.Close()
            MessageBox.Show("ファイルをオープンしました。")
       
End If

   
End Try
    MessageBox.Show("エラー処理は終了しました。")

End Sub

詳しくは、Try...Catch...Finally ステートメント のヘルプを見て下さい。
 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/vblr7/html/vastmTryCatchFinally.htm

又、MSDNのサイトの Visual Basic .NET のエラー処理 で詳しく解説されていますので参考にして下さい。





2004/05/08
2005/10/01


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