- - PR -
ObjectDataSourceコントロールでの例外処理について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-27 00:38
こんばんは。みきです。よろしくお願いします。
わたしは、asp.net(言語VB)で ObjectDataSourceコントロールを使用しGridViewでデータを表示させています。 ObjectDataSourceコントロールの中に例外処理としてCatch SQLExp As SqlException を記載しているのですが、例外が発生した際に参照元のラベルコントロール等に 文字を出力したいと思うのですが、参照元に文字を返せずに困っております。 実際にこの用な事は可能でしょうか? 下にコードを記載させて頂きますのでどうかアドバイスの程をよろしくお願い致します。 ObjectDataSourceコントロール(抜粋) ///////////////////////////////////////////////////////// <DataObjectMethod(DataObjectMethodType.Select, True)> _ Public Shared Function DataSelect(ByVal Display() As DataSet) as DataSet qqq = ConfigurationManager.ConnectionStrings("qqq").ToString qqqDb = New SqlConnection(qqqStr) '///SQL文発行/// qqqCom = New SqlDataAdapter(countsql, qqqDb) data = New DataSet qqqCom.Fill(data, "Display") '///結果をGridViewに返す/// Return data Catch SQLExp As SqlException ←これが発生した場合、参照元に文字を返したい End Try 'sqlExceptionが発生した時の終了処理 If qqqDb.State <> ConnectionState.Open Then qqqDb.Close() Else 'sqlExceptionが発生していない場合のDB切断処理 qqqDb.Close() End If ///////////////////////////////////////////////////////// | ||||
|
投稿日時: 2006-09-27 04:13
例外エラーの基本的な考えた
例外エラーが発生したらエラー情報をラベルに表示するのでなく(※)ログファイルに登録したり、メールにて管理者に送信します。 エンドユーザーには、「エンドユーザー向け」の専用ページを用意してエラーメッセージを表示します。 これらの処理をまとめて行うには、 Global.asaxの「Application_Error」イベントハンドラ で行うのが便利です。 ※例外エラーのメッセージを直接エンドユーザーに表示するとセキュリティ上問題があります。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2006-09-27 14:27
呼び出し元に返したいのであれば、例えば ByRef Message As String をパラメータに追加してこれにエラーメッセージを入れるという手もあります。
| ||||
|
投稿日時: 2006-09-27 15:20
まぁ、例外が発生してもメッセージを表示させるだけでアプリケーションは終了
させたくないときはありますよね。 で、まず、終了処理はFinallyブロックに書きましょう。 そうしておくと、例外が起きたときでもそのFinallyの中に書いた処理は必ず 実行されます。 で、例外が発生したときはそのとき表示させたい文字列を含めた例外を自分で つくってThrowしましょう。 参照側はやはりTry〜Catchで例外を処理するようにして、例外がかえってきたときは そこに含まれるメッセージをラベルに書き出すようにすればよいでしょう。 | ||||
|
投稿日時: 2006-09-27 21:56
その前に、構文の勉強が必要。。。抜粋とはいえ、ちょっと酷い。
_________________ |
1