在JavaScript中处理异常无外乎两种方式【try-catch】和【Promise-catch】可是两种应用场合彻底不同!javascript
try-catch----只能处理同步异常【同步和异步不是一个线程,因此同步没法捕捉异步的异常】java
Promise-catch----专门为异步提供的异常处理异步
封装一个全局通用的同步try-catch方法【同步和异步不是一个线程,因此同步没法捕捉异步的异常】 static tryCatchGlobal (asyncFunc) { try { return asyncFunc(); } catch (e) { console.log(`同步异常捕捉_error:${e}`); } }
封装一个全局通用的异步Promise的try-catch方法捕捉区块链异步异常错误 static tryCatchGlobalPromise (asyncFunc, errMsg = "区块链异步异常捕捉") { return new Promise((resolve, reject) => { // asyncFunc只能是异步方法,且必须返回一个Promise,不然会报错【Promise才有then方法】 return asyncFunc().then((res) => { resolve(res); }).catch((error) => { console.log(`${errMsg}_error:${error}:`); resolve(null); }); }); }