- PR -

コンポーネントクラス内でセッションを利用するには?

投稿者投稿内容
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2005-01-26 16:38
引用:

今までエラー処理は各関数内で行うべきものだと思っていました。
ASP.NETでは、各関数で個別に例外を処理しないで、
アプリケーションでまとめてひとつで処理するのが一般的なのでしょうか?
各関数内で個別に例外処理を記述するのは例えば、開いていたファイルを閉じるとか、
DB接続を閉じるとかする必要がある場合だけですか?



 
クラスライブラリとか、共通で使用する関数内では、例外は吸収せずにライブラリの
使用者に委ねるべきです。

 クライアントと直接対話するASP.NETのWebページなどでは、想定範囲内では個別に例外を処理して、ユーザを惑わせるような例外のメッセージは出さないようにすべきでしょう。
 PageのOnErrorなどは、そのページでの例外発生時の表示方法などの方針が統一されているのであれば、例外処理を一括して纏めることもできますね。

 Application_Error などは、最終的に個々で処理しきれない例外
(例えば、DBとの接続ができる前提のはずが、DBがダウンして接続できないなど、もはや拾ったところで運用を継続できないような場合など)を
拾う最後の砦として、適切なメッセージやログを出力するのに使用するのがよいのでは
ないでしょうか。
 
 
 
おふぃすこま
常連さん
会議室デビュー日: 2005/01/24
投稿数: 22
投稿日時: 2005-01-26 18:25
おふぃすこまです。

私もいのつちさんと同意見なのですが、一応名指しで質問されているのでお答えします。
ですので、みなさんあまり突っ込まないで下さいm(__)m
引用:

ASP.NETでは、各関数で個別に例外を処理しないで、
アプリケーションでまとめてひとつで処理するのが一般的なのでしょうか?


『エラー(例外)処理をアプリケーションでまとめて処理』と言ってしまうと、語弊があると思います。
今回の対応は、例外発生→それに対応した処理(リソースの解放など)の後に、アプリケーションがどう動くかをアプリケーション単位でまとめて指定しただけ・・・と考えています。
つまり、DB接続などを閉じる(ともさんの言うところのエラー処理)は例外が発生した関数(クラス)を使用する人に任せますよ、と。

私自身も、Application_Error() で行っている事はログを出力して、その内容を管理者へメールする事ぐらいですから

とも
会議室デビュー日: 2005/01/25
投稿数: 4
投稿日時: 2005-01-26 22:00
ともです。
いのつちさん、おふぃすこまさん、ありがとうございます。
みなさんのおかげで大変助かりました。
なかなか思うように進みませんが、がんばります!

スキルアップ/キャリアアップ(JOB@IT)