今天的内容中,我们来学习一下使用try
、catch
、finally
和throw
进行错误处理。我们还会讲一下 JS 中内置的错误对象(Error
, SyntaxError
, ReferenceError
等)以及如何定义自定义错误。
1.使用 try..catch..finally..throw
在 JS 中处理错误,我们主要使用try
、catch
、finally
和throw
关键字。
try
块包含我们需要检查的代码- 关键字
throw
用于抛出自定义错误 catch
块处理捕获的错误finally
块是最终结果无论如何,都会执行的一个块,可以在这个块里面做一些需要善后的事情
1.1 try
每个try
块必须与至少一个catch
或finally
块,否则会抛出SyntaxError
错误。
我们单独使用try
块进行验证:
try {
throw new Error('Error while executing the code');
}
ⓧ Uncaught SyntaxError: Missing catch or finally after try
1.2 try..catch
建议将try
与catch
块一起使用,它可以优雅地处理try
块抛出的错误。
try {
throw new Error('Error while executing the code');
} catch (err) {
console.error(err.message);
}
➤ ⓧ Error while executing the code
1.2.1 try..catch
与 无效代码
try..catch
无法捕获无效的 JS 代码,例如try
块中的以下代码在语法上是错误的,但它不会被catch
块捕获。
try {
~!$%^&*
} catch(err) {
console.log("这里不会被执行");
}
➤ ⓧ Uncaught SyntaxError: