使用throw new Error()和使用throw error的区别

1,228 阅读1分钟

在复习promise时,发现有两个可以抛出错误的方法,整理总结一下。 1、 throw new Error();   实例化写法 这个是创建错误,创造一个错误类型抛出

2、throw error  不建议的写法 这个是抛出错误。

[MDN Error](Error - JavaScript | MDN (mozilla.org))

在抛出的Error对象中有一个被广泛支持的属性:namemessage
name:用来存储错误的类型,在ECMA-262定义了七种错误类型:ErrorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError

message:用来存储error message,就是你new Error()时候穿进去的参数

使用throw new Error()

function parseExcel(con) {
   try {
        // doSomething
    } catch (error) {
        throw new Error('parse excel failed');
    }
}

在捕获错误时 要使用error.message

try {
    parseExcel(con);
} catch (error) {
    if (error.message === 'parse excel failed') {
        //doSomething
    }
}

使用throw error

function parseExcel(con) {
   try {
        // doSomething
    } catch (error) {
        throw 'parse excel failed'
    }
}

捕获错误时

try{
    parseExcel(con);
} catch (error) {
    if (error === 'parse excel failed') {
        //doSomething
    }
}