[英]Why won't this Azure time triggered function fail?
我想知道為什么我的 function 成功了,即使我故意在 function 中拋出異常。我創建了一個新的計時器 function,我所做的只是添加了一個 try/catch 塊和一個總是拋出的錯誤:
module.exports = async function (context, myTimer) {
try {
if (myTimer.isPastDue) {
context.log('Node is running late!');
}
context.log('TEST');
throw 'Error occurred';
} catch (err) {
context.log(err);
}
};
將上述 function 部署到 Azure 並手動觸發后,將導致成功執行 function 並且日志顯示“TEST”而不是“Node is running late:”:
2022-04-08T13:32:30Z [Information] TEST
2022-04-08T13:32:30Z [Information] Executed 'Functions.TEST' (Succeeded, Id=..., Duration=36ms)
文檔只有 state,我應該在 function 的最高級別使用 try/catch。我找不到任何關於為什么這個 function 會成功並在執行中發生錯誤的信息。
任何幫助將不勝感激,非常感謝!
它不會失敗,因為您正在捕獲錯誤,這意味着它沒有浮出水面,它希望您主動決定要做什么,記錄並重新拋出異常是一種選擇,僅記錄是另一種選擇,這實際上取決於您的業務需求。
您需要刪除 try/catch 塊或向您的 catch 添加類似於此的拋出
catch (err) {
context.log(err);
throw;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.