エラー処理を行うサンプルコードについて説明します。
TryステートメントからCatchステートメントの範囲内にエラーが発生する可能性のあるコードを記述し、Catchステートメントでエラー発生時のエラー処理を記述します。ADO.NETを使用してODBCエラーが発生した場合、OdbcExceptionクラスをキャッチすることで、SQLSTATEやエラーメッセージなどが確認できます。SQLSTATEやエラーメッセージをキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。
参照
エラーメッセージの対処方法は“メッセージ集”を参照してください。
ODBC以外のエラーは、Exceptionクラスをキャッチすることでエラー情報が確認できます。ODBC以外のエラーの対処方法は、Microsoft Visual Studio .NET ドキュメントを参照してください。
本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。発生したエラーのメッセージとSQLSTATEをWebページ上に表示します。
アプリケーションの手順
OdbcConnectionオブジェクトを生成します。(ConnectionStringプロパティに接続文字列を間違えて設定する)
TryステートメントからCatchステートメントの範囲内にエラーが発生する可能性のあるコードを記述します。
OdbcConnection.Openメソッドでコネクションを接続します。(パスワードを間違えて指定しエラーを発生させます)
Catchステートメントに処理したいエラーのクラスを指定します。
OdbcException.Errors.CountプロパティでODBCのエラー数を取得します。
OdbcException.Errors.MessageプロパティでODBCのエラーメッセージを取得します。
OdbcException.Errors.SQLStateプロパティにでSQLSTATEを取得します。
Exception.MessageプロパティでODBC以外のエラーメッセージを取得します。
処理がすべて行われた後に行う処理を、Finallyステートメント以降に記述します。
Public Class _Default Inherits Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 'オブジェクト宣言 Dim con As System.Data.Odbc.OdbcConnection Dim i As Integer Dim msgstr As String '1. OdbcConnectionオブジェクトの生成(コネクション文字列を間違えて設定) con = New System.Data.Odbc.OdbcConnection("DSN=checkRDB;UID=ADMINISTRATOR;PWD=XXXXXX") '2. Try ~ Catch の範囲内にエラーが発生する可能性のあるコードを記述 Try '3. コネクション接続(エラー発生) con.Open() 'データ処理を記述 'コネクション切断 con.Close() '4. OdbcExceptionクラスのキャッチ Catch ex As System.Data.Odbc.OdbcException For i = 0 To ex.Errors.Count - 1 msgstr &= ex.Errors(i).Message & "<br>" msgstr &= "SQLSTATE: " & ex.Errors(i).SQLState & "<br>" Next Label1.Text = "ODBC Error Message<br>" & msgstr '4. Exceptionクラスのキャッチ Catch ex As Exception msgstr = ex.Message Label1.Text = "Error Message<br>" & msgstr '5. Tryステートメント終了時の処理 Finally 'オブジェクトの破棄 con.Dispose() End Try End Sub End Class