エラー処理を行うサンプルコードについて説明します。
TryからCatchステートメントで、エラー発生時のエラー処理ルーチンを指定します。Symfowareのエラーが発生した場合、SymfowareExceptionクラスをキャッチすることで、SQLSTATEやエラーメッセージなどが確認できます。SQLSTATEやエラーメッセージをキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。
参照
エラーメッセージの対処法は“メッセージ集”を参照してください。
Symfoware以外のエラーは、Exceptionクラスをキャッチすることでエラー情報が確認できます。Symfoware以外のエラーの対処方法は、Microsoft社のVisual Studioのマニュアルを参照してください。
本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。発生したエラーのメッセージとSQLSTATEをWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。
アプリケーションの手順
SymfowareConnectionオブジェクトを生成します。(ConnectionStringプロパティに接続文字列を間違えて設定したとします)
TryステートメントからCatchステートメントの範囲内にエラーが発生する可能性のあるコードを記述します。
SymfowareConnection.Openメソッドでコネクションを接続します。(パスワードを間違えて指定しエラーを発生させます)
Catchステートメントに処理したいエラーのクラスを指定します。
SymfowareException.Errors.CountプロパティでSymfowareのエラー数を取得します。
SymfowareException.Errors.MessageプロパティでSymfowareのエラーメッセージを取得します。
SymfowareException.Errors.SQLStateプロパティでSQLSTATEを取得します。
Exception.MessageプロパティでSymfoware以外のエラーメッセージを取得します。
処理がすべて行われた後に行う処理を、Finallyステートメント以降に記述します。
'1.SymfowareConnectionオブジェクトの生成(コネクション文字列を間違えて設定)
Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;" _
& "INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=XXXXXX")
Dim text1 As String = Nothing
'2.Try ~ Catchの範囲内にエラーが発生する可能性のあるコードを記述
Try
'3.コネクション接続(エラー発生)
connection1.Open()
'データ処理を記述
'コネクション切断
connection1.Close()
'4.SymfowareExceptionクラスのキャッチ
Catch exception1 As SymfowareException
Dim num1 As Integer = 0
'5.Symfowareのエラー数を取得
Do While (num1 <= (exception1.Errors.Count - 1))
'6.Symfowareのエラーメッセージを取得
text1 = (text1 & exception1.Errors.Item(num1).Message & "<br>")
'7.SQLSTATEを取得
text1 = (text1 & "SQLSTATE: " & exception1.Errors.Item(num1).SQLState & "<br>")
num1 += 1
Loop
Me.Label1.Text = ("Symfoware Error Message<br>" & text1)
'4.Exceptionクラスのキャッチ
Catch exception2 As Exception
'8.Symfoware以外のエラーメッセージを取得
text1 = exception2.Message
Me.Label1.Text = ("Error Message<br>" & text1)
'Tryステートメント終了時の処理
Finally
'オブジェクトの破棄
connection1.Dispose()
End Try