簡體   English   中英

如何在 Javascript 中將自定義 object 作為錯誤拋出

[英]How to throw custom object as Error in Javascript

我在這里擴展錯誤 object 並傳遞狀態碼、代碼和消息。

class AuthenticationException extends Error {
constructor(statusCode, code, message) {
super();
this.statusCode = statusCode;
this.message = message;
this.code = code;
}
}
export default AuthenticationException;

但是錯誤只會像下面那樣拋出

{
"error": "Unable to decode token"
}

但這不是我想要的。 結果應該是這樣的,

{
"message": "Unable to decode token",
"code":1234
}

如果可以,請你幫助我。 我可以得到許多鍵值對作為拋出異常嗎?

我的猜測是對super()的調用在分配運行之前拋出。 但是由於在訪問this之前需要調用super() ,因此您可能不走運。

即使您可以跳過super() ,您也需要找到一種方法來告訴Error class 不僅要打印message ,還要打印codestatusCode

只需拋出您需要的 object 即可實現您想要做的事情:

throw { message: '...', code: '...', statusCode: '...' }

或者,如果您在很多地方使用它並且不想繼續輸入 object,請使用 function:

let customThrow = (message, code, statusCode) => {
  throw { message, code, statusCode };
}

不需要上課,更不用說 inheritance。 這種方式簡單多了。

暫無
暫無

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

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