(throw Exception
)と(return value
)はJavaやC#などの言語でどのように実装されていますか? try { .... } catch (Exception) {}
の使用だけでなく、そのサポートがどのように言語に含まれているかのメカニズムを知りたい。私たちは、コールに続いて例外、リターン、シリアライズ可能、
public void doSomething() {
....
....
return;
}
すなわち
関数を呼び出すときに我々が知っているはスタックに置かれ、この方法は、スタック上doSomething
へのコールが飛び出す返したとき。
値を持つreturn文が返す場合に何が起こる、スタック上のdoSomething()
へのコールが飛び出すと、プログレカウンター上の次の文が処理されてしまったreturn 4;
、 を言うの?戻り値はどうなりましたか?それはどこで救われ、どのように活用されましたか?
同様に例外スローの場合には、throw ex;
文がスタックに適切なcatch
文を見つけ、それを見つけるまで、それはスタックの外に物事を飛び出る続けて...どのようにこのメカニズムの作業はありません?
これを編集して2つの異なる質問 –
にすると、あなたの質問を編集するだけの価値がありますが、今は全く異なっています。 –
申し訳ありませんが、もっと精巧になる必要があると思いました。 –