📜  在 ES6 中定义异常处理

📅  最后修改于: 2022-05-13 01:56:46.415000             🧑  作者: Mango

在 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