前提・実現したいこと
try-catch-finallyでのthrowの使い方の方法を知りたいです。
特にcatch内でthrowだけの場合何を実装しているかわからない。
該当のソースコード
C#
1try 2{ 3 例外が発生する可能性のあるコード 4} 5catch(例外の種類?) 6{ 7 例外発生処理コード 8throw; 9 10} 11finally 12{ 13 例外発生の有無にかかわらず実行したいコード 14}
試したこと
try-catch-finallyについて勉強して、
tryのカッコ内で例外が発生しているか判定しながらコードが進んでいき、
例外の場合は、実装することがわかった。
throwは例外を発生させしているときに使う、throwによって例外が発生させると書いているが、
catchのカッコ内ですでに例外を発生させしているのにthrowによって例外が発生させることがわからないです。
再送しているだけかと。
そのメソッドが呼ばれている場所に投げているはずです。

> 再送しているだけかと
違いますよ
スローは投げる、キャッチは捕る、です。
投げた例外を捕まえるのが catch で、このブロック内で例外を分析し、その問題を解決します。
通常、例外はそこで消えます。
分析した上で処理しきれなかった場合には、同じ例外を再度スローして別のハンドラに処理を任せることができます。
これが throw です。
catch ブロック内で単に throw と書くと、捕まえた例外をそのまま何もなかったかのように再スローすることができます。
この質問のコードでは、キャッチした例外を何もせずそのまま投げているだけなので、全く無駄な処理になっていますが、本来ならこの throw の前に分析やログへの書き込みを行い、その後に throw します。
> 例外発生処理コード
と書かれているところに、本来なら例外処理のコードを書きます。

回答3件
あなたの回答
tips
プレビュー