3

高レベルのプログラミング言語 (Java など) では、例外処理はどのように実装されていますか? これは、言語内で例外を使用する方法を意味するものではありません。コンパイラがどのようにコード (アセンブリ、または Java バイト コードのような中間コード) を生成するかを意味します。これは、例外処理として認識されます。上位レベルのすべてがこれらの命令で構成されている必要があります。

C では、例外が存在する前はエラー コードを返していましたが、関数が既に何かを返している場合はどうでしょうか。おそらく、エラー コードと実際の結果の両方の構造を返すのでしょうか?

4

1 に答える 1

2

コンパイラは、throw サイトでathrow命令 ( JVM SpecificationExceptions ) を出力し、メソッドのコードで属性 ( #4.7.5 ) を出力します。これは、さまざまな catch 句がすべてどこにあるか、それらがカバーする命令の範囲、および例外の種類を示します。彼らは捕まえます。

于 2013-04-17T01:08:52.253 に答える