new Error([message]])
var error = new Error('test');
Object.keys(error); // []
Object.getOwnPropertyNames(error); // ['stack', 'message']
Object.getOwnPropertyDescriptor(error, 'message');
// {value: "test", writable: true, enumerable: false, configurable: true}
// FF
Object.getOwnPropertyNames(error); // ['fileName', 'lineNumber', 'columnNumber', 'message']
错误实例的描述信息,创建时候的第一个参数,默认为''
Object.getOwnPropertyDescriptor();
调用堆栈信息,记录有每一步的文件,方法,行号,列号
非标准方法,不过所有执行环境都支持。
错误实例的类型,如'Error', 'EvalError'
描述信息,值为''
除了最基本的Error构造函数,还提供了一下类型:
throw
中断程序执行,抛出一个意外或错误。它接受一个表达式作为参数,可以抛出各种值。这个异常可以是String, Number, Boolean 和Object类型。
try {
...
} catch(err) {
...
} finally {
...
}
window.onerror = function (message, source, lineno, colno, error) {
...
};
对于无法预知和try-catch无法覆盖的错误可以使用window.onerror来捕获。 该方法返回true将阻止上层的错误处理方法(此处为浏览器)的执行
element.onerror = function (event) {
...
};
// global.ErrorUtils
ErrorUtils.setGlobalHandler(error => {
...
});