我收到幾個錯誤,沒關系,當用戶拒絕時,交易不好時等等
但現在我想通過他們的代碼錯誤顯示不同的訊息
在我的專案服務中,我收到此錯誤
{code: 4001, message: 'MetaMask Tx Signature: User denied transaction', stack: '{\n "code": 4001,\n "message": "MetaMask Tx'}
這是我的代碼
function getInformation=()=>{
try{
...
} catch (err) {
error = err
console.log('error', error) // error is the up message
throw new Error(error)
}
}
然后我使用這樣的 getInformation 函式:
try{
...
const info= getInformation()
} catch (error) {
console.log('EERROR', error,error.code)
在這里,我將錯誤視為字串
EERROR Error: [object Object]
at _callee$ (PWDService.js?9579:13)
at tryCatch (runtime.js?96cf:62)
at Generator.invoke [as _invoke] (runtime.js?96cf:296), undefined
并且error.code是未定義的,為什么我得到一個字串和error.code未定義?
顯然error.code是未定義的,因為錯誤是一個字串
uj5u.com熱心網友回復:
Error建構式的第一個引數需要一個人類可讀的訊息,即一個String。這意味著您正在傳遞的物件正在new Error被ToString編輯,從而導致"[object Object] ..."訊息
如果您對初始捕獲的錯誤感到滿意,只需重新拋出
try {
// ...
} catch (err) {
console.log('error', err);
throw err;
}
如果要創建新的自定義錯誤,則需要通過修改new Error或創建自己的Error 類來創建它,即
try {
// ...
} catch (err) {
console.log('error', err);
const error = new Error(err.message);
error.code = err.code;
// other stuff
throw error;
}
或者
class MMError extends Error {
constructor(message, code) {
super(message);
this.code = code;
// other stuff
}
}
// ...
try {
// ...
} catch (err) {
console.log('error', err);
const error = new MMError(err.message, err.code);
throw error;
}
uj5u.com熱心網友回復:
@react1 你總是可以通過做類似于下面的事情來重建錯誤并查看它的所有屬性,
try {
// ...
} catch (err) {
let errObject = Object.assign({}, err)
// console.log(errObject) to see what's there and what you can use
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/380334.html
標籤:javascript Vue.js
上一篇:我正在嘗試通過復選框從陣列中洗掉多個元素我正在使用vue.js但我無法弄清楚如何去做
下一篇:Vue:按特定順序執行兩個方法
