JavaScript中的异常处理

JavaScript 中的异常处理可以用来避免浏览器向用户报告错误信息,也可以向调用者报告错误信息。

try/catch/finally

try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
finally 语句在 try 和 catch 之后无论有无异常都会执行。
注意: catch 和 finally 语句都是可选的,但你在使用 try 语句时必须至少使用一个。

1
2
3
4
5
6
7
8
9
try {
tryCode - 尝试执行代码块
}
catch(err) {
catchCode - 捕获错误的代码块
}
finally {
finallyCode - 无论 try / catch 结果如何都会执行的代码块
}

throw

throw 语句创建自定义错误。

1
throw "error";

Error

通过 Error 的构造器可以创建一个错误对象。当运行时错误产生时,Error 的实例对象会被抛出。

1
2
3
4
5
6
new Error([message[, fileName[, lineNumber]]])

// message 可选, 描述错误的信息, 类型为一个字符串,如果不是字符串则会调用其 toString()
// fileName 可选,被创建的 Error 对象的 fileName 属性值,默认为调用 Error 构造器的文件名
// lineNumber 可选, 默认为调用 Error 构造器的文件行号
// 注意: fileName 和 lineNumber 参数是非标准的 api,使用时需要注意其兼容。

console.error()

console.error() 方法用于输出错误信息到控制台。

1
console.error(message);

console.warn()

console.warn() 方法用于在控制台输出警告信息。

1
console.warn(message);

console.dir()

console.dir() 方法用于打印一个对象的所有属性和方法。

1
console.dir(object);

window.onerror

window.onerror 用来监听 js 运行异常。

1
2
3
4
5
6
7
8
9
10
11
12
13
window.onerror = function (
errorMessage,
scriptURI,
lineNumber,
columnNumber,
errorObj
) {
console.log("错误信息:", errorMessage);
console.log("出错文件:", scriptURI);
console.log("出错行号:", lineNumber);
console.log("出错列号:", columnNumber);
console.log("错误详情:", errorObj);
};