在 ES6 中定义异常处理
异常:异常是不需要的事件,基本上会中断程序的正常流程。一般有两种例外情况:-
- 同步(例如运行时错误)
- 异步(例如系统错误)
异常处理:程序中经常发生异常,导致程序突然终止或以不友好的方式终止。处理或防止意外行为称为异常处理。异常处理处理同步异常,例如错误的用户输入、不存在的文件等(包括运行时错误)。
为什么要进行异常处理:异常处理基本上保证了程序不会突然终止,或者程序的流程不会以不友好的方式中断。有意义的错误报告是可能的,并且可以为用户生成易于理解的错误报告。
ES6 (ECMA 脚本编程语言版本 6)提供了异常处理的重要特性。它是通过使用try - block 后跟catch - block 或finally - block 来完成的。由于try块不是单独存在的,它们要么跟在catch块之后,要么跟在finally块之后。它以三种形式之一存在:-
- 试着抓
- 试试……终于
- 尝试……抓住……终于
1. try...catch 块: try块中的代码或try语句将首先执行。每当发生异常时,它将被放置在exception_var中,并且catch块将进一步执行。
句法:
try {
// try statements
// code to run
} catch (exception_var) {
// catch statements
// code to run
}
2. try...finally 块:首先会执行try语句。最后,语句将被执行。无论是否发生异常, finally块都将始终执行。
句法:
try {
// try statements
// code to run
} finally {
// finally statements
// code that is always executed
}
3. try...catch...finally 块:如果发生异常, try块首先执行,其值将放在exception_var中, catch块将在finally块执行后执行。但是,无论是否发生异常, finally块都会执行。
句法:
try {
// try statements
// code to run
} catch (exception_var) {
// catch statements
// code to run if exception occurs
} finally {
// finally statements
// code that is always executed
}
让我们通过以下示例来理解:
示例 1:让我们举一个错误的用户输入示例,其中用户将问题除以零“0”。
javascript
javascript
javascript
输出:
Error : Divide by zero error
示例 2:让我们再举一个示例,其中每当我们使用未声明的东西的引用时都会引发引用错误。在这个例子中,我们没有刻意声明函数,直接调用会导致ReferenceError。
javascript
e.name将返回错误的名称。
输出:
Error : ReferenceError
示例 3:在我们的最后一个示例中,我们故意编写了一个语句来尝试阻止语法错误。我们没有正确地将单引号之间的字符串括起来。它会给我们SyntaxError。
javascript
输出:
Error : SyntaxError