簡體   English   中英

為什么這個 Azure 時間觸發 function 不會失敗?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM