[英]getting error in string when i use throw new error
const functionName = async () => {
try {
//code
} catch (error) {
let data = {}
data.error = error
data.fnName = 'checkIfSupplierIsAllowedToSync'
throw new Error(data)
}
}
const fnName = async () => {
try {
await functionName()
} catch (error) {
console.log("error#####", error)
}
}
答案:- 錯誤##### "[object Object]"
為什么我在字符串中出現錯誤? 我如何得到 function 名稱錯誤?
錯誤期望將字符串傳遞給構造函數。
[object Object]
是傳入的簡單 object 的字符串表示形式。
> {}.toString()
'[object Object]'
創建一個錯誤以將數據附加到,而不是 object
const functionName = async () => {
try {
//code
} catch (error) {
const wrapped_error = new Error(`Wrapped: ${error.message}`)
wrapped_error.error = error
error.fnName = 'checkIfSupplierIsAllowedToSync'
throw wrapped_error
}
}
這可以添加到封裝所需行為的Error
class
class WrappedError extends Error {
constructor(error, fnName) {
super(`Wrapped: ${error.message}`)
this.error = error
this.fnName = fnName
}
}
const functionName = async () => {
try {
//code
} catch (error) {
throw new WrappedError(error, 'checkIfSupplierIsAllowedToSync')
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.