この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
ついに実行命令を捕まえようとし、返却...
眺める:
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、あるコードの行に素早く到達したら、ショートカットは何ですか?
関連記事
•
C# デシリアル化データ処理後、json() を戻します。
•
特に優れたhttpリクエストクラス
•
Microsoft.Office.Interop.Word 操作 Word テンプレートドキュメント
•
外に出て書くときは注意してください! そして「やっと返して!」と書いてみて。
閲覧したセクション
C/C++
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com