簡體   English   中英

如何從 function 返回錯誤?

[英]How can I return an error from a function?

假設我有一個像這樣的 function:

const getPlayer = (id) => {
  return players[id;]
}
//--------------------------
const client = getPlayer(9);

如果沒有找到播放器,如何將err參數返回給客戶端變量? 例如:

if (client.err) { 
//do something
}

我嘗試通過throw new Error('my error')傳遞錯誤,但 function 仍然沒有得到它,我做錯了什么?:(

所以你的第一直覺是正確的,你應該使用 'throw' 關鍵字來引發錯誤。 要對錯誤采取行動,您需要像我在下面所做的那樣使用try/catch

const getPlayer = (id) => {
  if(id in players) {
     return players[id];
  }
  throw new Error("Oh noes...!");
}

try {
   const client = getPlayer(9);
} catch(error) {
   console.log(error.message);
}

當在try塊中執行的 function 內部拋出錯誤時,執行會立即跳轉到 catch 塊,從而允許您適當地響應錯誤。

簽出 try/catch 語法。

例如:

const getPlayer = (id) => { 
    if (!id) {
        throw new Error('no id provided');
    }

    return players[id]
}

要獲得此“錯誤”state,當它觸發時,您可以執行以下操作:

try {
    const client = getPlayer(null);
} catch(error) {
   console.log(error.message);
}

我嘗試了一些東西,但不確定這是否是您所追求的:

let a = (x) => {
  if (x == 0) {
    throw new Error("Votes are zero");
  } else {
    return x;
  }
};

在控制台中運行它,值為 a(0) --> 會拋出一個新錯誤和 a(5)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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