[英]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
,還要打印code
和statusCode
。
只需拋出您需要的 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.