- - PR -
Throw ex と Throw
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-07 17:11
お世話になります。下記宜しくお願い致します。
[質問内容] 過去ログに Throw ex ではなく Throw とした方が良いよ( Throw ex とするとその場所が例外発生箇所になってしまうよ)という書き込みを何度か見た事があり、今度開発する時には是非そうしようと思っていたのですが、今回、開発に当たってテストコードを書いてみたところ何が違うのか判りませんでした。当方が何か勘違いしているのかもしれません&初歩的な質問かもしれませんが、ご指摘・ご教授頂けないでしょうか? [環境] VS.NET2003(VB.NET) Windowsアプリケーション Debugモードで実行 [テストコード]
[現象] Throwとだけ書いた時には、82行がエラー発生行として出てくれる事を期待していましたが、どちらのコードでも例外発生行は84行とメッセージ表示されます。 ErrorLogicメソッドの(Try〜End Tryは残して)Catch句とThrow自体を削除すると、例外発生行が82行と出てくれます。 [MsgBoxの表示内容] System.InvalidCastException: 文字列 "ABC" から型 'Integer' へのキャストが有効ではありません。 ---> System.FormatException: 入力文字列の形式が正しくありません。 at Microsoft.VisualBasic.CompilerServices.DoubleType.Parse(String Value, NumberFormatInfo NumberFormat) at Microsoft.VisualBasic.CompilerServices.DoubleType.Parse(String Value) at Microsoft.VisualBasic.CompilerServices.IntegerType.FromString(String Value) --- 内部例外スタック トレースの終わり --- at WindowsApplication20.Form1.ErrorLogic() in C:¥TestApp¥WindowsApplication20¥WindowsApplication20¥Form1.vb:line 84 at WindowsApplication20.Form1.Button1_Click(Object sender, EventArgs e) in C:¥TestApp¥WindowsApplication20¥WindowsApplication20¥Form1.vb:line 74 | ||||
|
投稿日時: 2006-08-07 17:27
ここは、読まれましたか?
[VB.NET] Throw だけで例外を再スロー #MSDN の章立ては新しくなっていますので、注意して下さい。 | ||||
|
投稿日時: 2006-08-07 17:29
| ||||
|
投稿日時: 2006-08-07 18:52
ひろれい様、todo様
情報ありがとうございました。過去ログに在ったのですね。見落としていました。 ご提示頂いたログ・MSDNヘルプを読み、サンプルソースを実行して、自分の誤解していたところが解消できました。 |
1