【重磅封装】JavaScript之同步异常try-catch处理和异步异常Promise-catch处理之封装全局方法【tryCatchGlobal和tryCatchGlobalPromise】

为什么要封装全局同步异常处理和异步异常处理呢?

原因简单:在整个项目中,很多地方都要用到异常处理,总不能随处都是try-catch吧

 

在JavaScript中处理异常无外乎两种方式【try-catch】和【Promise-catch】但是两种应用场合完全不一样!

try-catch----只能处理同步异常【同步和异步不是一个线程,所以同步无法捕捉异步的异常】

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);
            });
        });
    }

 

你可能感兴趣的:(JavaScript)