throw Exception
( ) と ( return value
) は Java や C# などの言語でどのように実装されていますか? の使用法だけでなく、そのサポートが言語にどのように含まれているかのメカニズムを知りたいですtry { .... } catch (Exception) {}
。
関数をいつ呼び出すかを知っています。
public void doSomething() {
....
....
return;
}
次に、呼び出しがスタックに置かれ、メソッドが呼び出しを返すと、doSomething
スタックが飛び出します。
return ステートメントが値を返した場合、たとえばreturn 4;
、スタック上の への呼び出しがdoSomething()
ポップアウトし、Prog カウンターの次のステートメントが処理された場合はどうなりますか? 返された値はどうなりましたか? それはどこに保存され、どのように利用されますか?
同様に、例外スローの場合、throw ex;
ステートメントはスタック上で適切なcatch
ステートメントを見つけ、それが見つかるまで、スタックから何かをポップし続けます... このメカニズムはどのように機能しますか?