0
にcatch句に落ちる、私はあなたのような保護されたブロックで例外をスローすることによってcatchハンドラを入力することができますことを承知しています制御をcatch節に移してください。 は例外をポップします。CILでtryブロックについてはCIL
私の関心事(/好奇心)は、これが最適化できるかどうかで、実行は がスローされるのではなく、PCをインクリメントしてcatchブロックに移動することです。このようなもの:
try {
newobj Exception
} catch {
pop
ldstr "catchblock"
call WriteLine
} finally {
ldstr "finallyblock"
call WriteLine
}
EX1:
これは有効なCILですか? throw文を使用せずにcatchハンドラブロックに到達することは可能ですか?
これは私が理解しているのは、ハンドラに渡すことができないということですが、 'leave'命令は省略することができます。コントロールはtryブロックの最後まで落ちます。 –
@ TitianCernicova-Dragomir私はそれが可能であるかどうかわからないのですか?最後の命令は、仕様で定義されている分岐元の規則によって分岐することはできません。だから、最後の命令は休暇でなければなりません。私は思う... – Nick
非常にブライアン、これは非常に美しいニュースですありがとうございます – Nick