- 559 名前:デフォルトの名無しさん [2021/05/10(月) 13:43:11.18 ID:FH4+0Y9S.net]
- 多くの例外がある言語(RustやGoのpanicも含む)では、上記の例ではファイル出力とは無関係な処理でも
即座に後処理へ移動します。ですが、ここに1つの問題があり、多くは捕捉した後にほぼ「自動的に」 ディストラクタに記述された処理をスレッド毎に存在するスタックを遡って巻き戻しを行います。 (例外の反対者はこれを隠された制御フローというが、決して信頼性が低下するわけではないです、 カーネルの例外ハンドラを例に挙げれば、ただ挙動が合わない事と、多くの例外がある言語でのCPU例外の 捕捉はリカバリが不可能に近く、挙動が保証できない事でディストラクタ実行させて意味があるのかという 矛盾もあります) それ以外の例外処理は概念的にはスレッドローカルグローバル変数とifとgoto/returnの組み合わせにしか ならないので信頼性が低下したりはしません
|

|