javascript - 使用try catch的主要原因是什么?

标签 javascript try-catch

请看一下这个演示 try-catch 代码的 JavaScript 代码示例。其目的是作为 try-catch 代码的简单示例,以学习概念。

let age = prompt(`Please enter your age, `));
let err1 = `Error: Make sure field isn't empty and only a number is given`;
let err2 = `Error: Age out of range`;

try (
    if (age == "" || isNaN(age)) {
        throw err1;
    } else if (age < 0 || age > 120) {
        throw err2;
    }
)

catch (error) {
    if (error == err1) {
        console.log('Age was either empty or non solely numerical.');
    } else if (error == err2) {
        console.log('A solely numerical age was given, but it was beyond range.');
    }
    exit;
}

从这个例子中,我可以假设使用 try-catch 代码的主要原因是为了更好地组织代码(特别是更好地组织每个错误的结果),即使我们可以实现它无需 trycatch 的精确结果,以及更命令式的代码(例如,每个错误的结果将在 row 中定义,而不是稍后在 catch block )。

更好的代码组织(特别是自定义错误处理)是在我们的代码中组合这两个 block 的主要原因吗?

最佳答案

使用 try{} catch(exception){} 的主要优点是您可以将控制权转移到 catch(exception){}抛出异常的事件允许您继续处理,而不是您的脚本惨遭失败。简而言之,您正在捕获异常。

换句话说,主要原因是捕获异常,然后决定要采取什么操作。你是否有可能以不同的方式处理问题并在不失败的情况下完成任务?如果是这样,这就是 catch(exception){//do some different } 发挥作用的地方。从某种意义上说,它为您提供了第二次机会:-)

关于javascript - 使用try catch的主要原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47133151/

相关文章:

javascript - 这两个 XPath 表达式有什么区别?

javascript - 处理 React 中的 localStorage 更改以重新渲染组件

Java:获取引发异常的用户输入的值

java - 为什么我的代码绕过了 else if 语句?

从 catch block 的结果调用具有通用参数的 Java 方法

javascript - 在响应函数中调用await

javascript - 将图像与其 ALT 链接

javascript - 将数据从 Sails 服务发送到 Controller

python 基础 try catch 异常

c++ - 异常如何在 C++ 中工作(在幕后)