- PR -

Exceptionでハンドルされない場合は?

投稿者投稿内容
未記入
会議室デビュー日: 2008/10/31
投稿数: 2
投稿日時: 2008-10-31 17:46
.NET初心者なので情報が足りないかもしれませんが・・・

フレームからASPを表示してるのですが
Page_Loadメソッドでエラー処理がアプリケーションエラーになってしまいます。

*************************************************************
(「型(a)の例外が(b)で発生しましたが、ユーザコードないではハンドルされませんでした」
追加情報:(c))
*************************************************************

Page_Loadメソッドは・・・

TRY
Throw New ApplicationException((c)
Catch ex As Exception
Throw ex <---ここで上記のエラーが発生します。
End Try

どのような原因があるのでしょうか?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-10-31 18:29
Throwして、それを受け取っているところがないのが原因だと思います。
なんでそこでThrowしてるんでしょう。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-10-31 19:44
コード:
TRY
  Throw New ApplicationException(c)
Catch ex As Exception
  Try
    Throw ex
  Catch ex2 As Exception
    'キャッチできます
  End Try
End Try

未記入
会議室デビュー日: 2008/10/31
投稿数: 2
投稿日時: 2008-11-04 15:52
返信が遅くなりました。。

>Jittaさん
キャッチをしたいのではなくエラーを呼び出ししてる上位に戻したいので
二重にしてもエラーは発生しちゃいました。

>どっとねっとふぁんさん
共通のエラー処理をするためにThrowしてエラーを発生させてます。

もうちょい調べてみます。
ご意見ありがとうございました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-11-04 16:42
> キャッチをしたいのではなくエラーを呼び出ししてる上位に戻したいので

上位で受け取れてないだけでしょう。
なんかプログラムがまずいんだと思いますよ。

King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-04 16:44
引用:
キャッチをしたいのではなくエラーを呼び出ししてる上位に戻したいので


エラーを呼び出している上位とは何でしょうか。
関数を呼び出している上位と言うことでしょうか。
Page_Load を呼び出しているとなると
親クラスでオーバーライドしている関数の事でしょうか。

どれにしろ上位の関数でキャッチしたいのであれば
Tray-Catch する必要も Throw する必要も無いのではないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-11-04 19:00
VB6 でいうところの、
On Error Resume Next
がしたいとか?
だったら無理です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-11-04 20:59
引用:

Jittaさんの書き込み (2008-11-04 19:00) より:

VB6 でいうところの、
On Error Resume Next
がしたいとか?


"上位" と仰っているのに加え、自ら throw しているのでそれはないと思います。 どっとねっとふぁんさんの仰るとおり、ご本人が "上位" といっている部分の制御構造 (catch 句) が正しくないか、そもそも "上位" そのもの (言葉の定義) 自体が誤っているかだと思います。

引用:

未記入さんの書き込み (2008-10-31 17:46) より:

Page_Loadメソッドは・・・

TRY
 (snip)
End Try


Page_Load イベントと仮定するとして、その上位とは...?

引用:

共通のエラー処理をするためにThrowしてエラーを発生させてます。


お探しのものは Application_Error イベントだったりしないでしょうか。 "共通のエラー処理" というのがどの単位で共通なのかがわかりませんので、この回答は的外れかもしれません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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