例外をサイレントにせずにログをキャプチャする方法はありますか?私のテスト フレームワークでは、出力ファイルからの Prints/Writes/handled 例外の結果として生じる乱雑な部分を取り除きたいので、Log Capture( Eval( testExpression ) ) 内でテスト コードを実行してみました。 私の問題は、これにより、testExpression の評価時にスローされる例外も黙らせてしまうように見えることですが、これは予期していませんでした。
例として:
Try(
logs = Log Capture(
Throw( "newsflash buddy!" );
);<BR /> Print( "Logs: " || logs );
,
Print( "Error:" || exception_msg )
);
ログを取得したいのですが、Capture 内のコードがスローされた場合に備えて、Catch になってしまいます。
補足質問: スローされた例外は実際にはログに表示されないため、キャプチャによって例外が沈黙する理由がさらにわかりにくくなります。
自動化とスクリプト作成Re: 例外をサイレントにせずにログをキャプチャする方法はありますか?この機能が目的に応じて機能するかどうかを確認してください。

Re: 例外をサイレントにせずにログをキャプチャする方法はありますか?こんにちは、マーク、あなたがリンクした関数は、私が最初の投稿で言及していた関数です。 私が抱えている問題は、キャプチャ内の式でスローされた例外が抑制されることです。 たとえば、上記のスニペットでは、catch ブロック内の Print は実行されません。
Re: 例外をサイレントにせずにログをキャプチャする方法はありますか?詳細は覚えていませんが、未解決のスローを処理するために LogCapture が必要でした。 結果を再スローして保存することはできませんログあなたの助けがなければ、次のようなものです。
Try(
logs = Log Capture(
Try(
rememberException = Empty();
Print( "Hello" );
Throw( "newsflash buddy!" );
,
rememberException = exception_msg
)
);
Print( "Logs: " || logs );
If( !Is Empty( rememberException ),
throw( "remember: " || rememberException )
);
,
Print( "Error: " || exception_msg )
);
「ログ:
\!"こんにちは\!""
「エラー: 覚えておいてください: ニュース速報の仲間!」
Re: 例外をサイレントにせずにログをキャプチャする方法はありますか?言い忘れていましたが、この関数によって返された結果を保存して調べることができます。@Craige_Hales ' Reply は、引数として提供されたコード内から出力する代わりに、この関数を使用する方法を示しています。 混乱して申し訳ありません。
Re: 例外をサイレントにせずにログをキャプチャする方法はありますか?ありがとうクレイジ、これは完璧です!