ここではVB.NETで例外を操作する方法をいくつか紹介します。
代表的な例外の種類
ここでは、VB.NETで代表的な例外の種類を紹介します。
・添え字(インデックス)が範囲外の場合
→ArgumentOutOfRangeException
・データベースへの接続ができなかった
→OleDbException
・入出力エラー
→IOException
・ファイルがない
→FileNotFoundException
・フォルダがない
→DirectoryNotFoundException
例外やエラーの発生した場合の処理を記述する方法
ここでは、VB.NETで例外やエラーの発生した場合の処理を記述する方法を紹介します。
VB.NETで例外やエラーの発生した場合の処理を記述するには、try-catchを使います。
<サンプル>
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim str1, str2 As Integer
str1 = TextBox1.Text
str2 = TextBox2.Text
MsgBox(str1 & str2)
Catch ex As Exception
MsgBox(“エラーが発生しました”)
End Try
End Sub
End Class
このプログラムでは、テキストボックスの値(String型)をInteger型の変数に格納しようとしてエラーが発生します。
エラーが発生する可能性のある場所、エラーを検知したい場所をtryからcatchの間に記述します。catchからend tryの間にエラーが発生したときに実行する処理を書きます。
例外のメッセージ内容や場所を取得する方法
ここでは、VB.NETで例外のメッセージや場所を取得する方法を紹介します。
VB.NETで例外のメッセージや場所を取得するには、Exceptionクラスのメソッドを使います。
・Exceptionのメッセージ
→Exceptopn.Message
・Exceptionの場所
→Exceptopn.StackTrace
・例外のタイプ
→Exception.GetType
例外・Exceptionをスローする方法
ここでは、VB.NETで例外・Exceptionをスローする方法を紹介します。
VB.NETで例外・Exceptionをスローするには、throwを使います。
<サンプル>
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Throw New Exception(“エラー”)
Dim str1, str2 As Integer
str1 = TextBox1.Text
str2 = TextBox2.Text
MsgBox(str1 & str2)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
ここでは、「Throw New Exception(“エラー”)」で新しくExceptionをNewしてスローしています。これで一行目で無理やりエラーを発生させています。