有沒有辦法在不消除異常的情況下捕獲日誌?在我的測試框架中,我想消除輸出檔案中列印/寫入/處理異常所導致的混亂,因此我嘗試在日誌擷取( Eval( testExpression ) )內執行測試程式碼。 我的問題是,這似乎也消除了評估 testExpression 時引發的任何異常,這是我沒想到的。
舉個例子:
Try(
logs = Log Capture(
Throw( "newsflash buddy!" );
);<BR /> Print( "Logs: " || logs );
,
Print( "Error:" || exception_msg )
);
我想獲取日誌,但仍然會陷入捕獲狀態,以防捕獲中的程式碼拋出異常。
附帶問題:我拋出的異常實際上並沒有出現在日誌中,這進一步讓我困惑為什麼捕獲會使其沉默。
自動化和腳本編寫回覆:有沒有辦法在不消除異常的情況下捕獲日誌?看看這個功能是否適合您的目的。

回覆:有沒有辦法在不消除異常的情況下捕獲日誌?嗨,馬克,您連結的功能就是我在原來的帖子中提到的功能。 我遇到的問題是捕獲內表達式中引發的異常被抑制。 例如,在上面的程式碼片段中,catch 區塊中的 Print 不會被執行。
回覆:有沒有辦法在不消除異常的情況下捕獲日誌?我不記得細節了,但 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 )
);
"紀錄:
\!“你好\!””
“錯誤:記住:新聞快訊夥計!”
回覆:有沒有辦法在不消除異常的情況下捕獲日誌?我忘了提到,您可以保存該函數返回的結果以供檢查。@Craige_Hales ' 回應顯示如何使用此函數,而不是從作為參數提供的任何程式碼列印。 對於造成的混亂,我深表歉意。
回覆:有沒有辦法在不消除異常的情況下捕獲日誌?謝謝克雷格,這太完美了!