この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 15557|答える: 0

[通信] もし戻りがあるなら、実行順序をキャッチしてみて

[リンクをコピー]
掲載地 2015/12/17 12:34:00 | | |
1. 例外があるか例外があるかにかかわらず、最終ブロックのコードは実行されます。
2. try and catchにリターンがある場合、最終的には実行されます。
3. finalはreturnの後に式操作の後に実行されます(この時点で、操作後の値は返されませんが、returnすべき値は先に保存されます。finallyのコードに関係なく、たとえ以前に保存された値であっても返される値は変わりません)。したがって、関数の返還値は最終的に実行される前に決定されます。
4. returnを含めない方が良いです。そうしないとプログラムが早期終了し、return値はtryやcatchに保存されたreturn値ではありません。
例:
状況1:try{} catch(){}Finally{} return;
            どうやら手続きは順番に行われているようです。
状況2:try{ return; }catch(){} finally{} return;
          プログラムはtryブロックのreturn前にコードを実行します(return文の式操作も含む)。
         最後に最後のブロックを実行し、最後にtryでreturnを実行します。
         最後にブロックリターンが行われます。なぜなら、プログラムがtryでreturnしたため、もはや実行されなくなったからです。
状況3:try{ } catch(){return; } 最後に{} 戻る;
         プログラムはまずtryを実行し、例外に遭遇した場合はcatchブロックを実行します。
         例外がある場合は、catchでreturnの前にコードを実行し(return文の式操作を含む)、そして最後の文ですべてのコードを実行します。
                     最後にキャッチブロックでリターンを実行します。 最終的に4か所のコードは実行されなくなります。
         例外はありません:実行し、試してから最終的に戻ります。
状況4:try{ return; }catch(){} finally{return; }
          プログラムはtryブロックのreturn前にコードを実行します(return文の式操作も含む)。
          そして最後のブロックを実行してください。最後のブロックにはリターンがあるので、早めに退出してください。
ケース5:try{} catch(){return; }ついに{return; }
          プログラムはキャッチブロック内で、リターンの前にコードを実行します(リターン文の式操作も含む)。
          そして最後のブロックを実行してください。最後のブロックにはリターンがあるので、早めに退出してください。
状況6:try{ return; }catch(){return; } 最後に{return; }
          プログラムはtryブロックのreturn前にコードを実行します(return文の式操作も含む)。
          例外があります:catchブロックでreturnの前にコードを実行します(return文の式操作を含む)。
                       そしてfinalブロックを実行します。lastのブロックにはreturnがあるため、早期に終了します。
          例外はありません:その後、最後のブロックを再度実行し、最後のブロックにリターンがあるので早期に退出します。

最終結論: try または catch の任意の return 文は、finally が存在する場合、最終文の前に実行されます。
                  finallyにreturn文があれば、プログラムはreturnします。したがってfinallyのreturnは必ず戻されます。
                  コンパイラは「final」の返却を警告として実装します。




先の:.netはHttpListenerを使ってコンテンツを聴き、ブロックを防ぐためにユーザーに応答するスレッドを使用しています
次に:VS2013、あるコードの行に素早く到達したら、ショートカットは何ですか?
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com