账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于抛出异常
    • 2020-01-01 00:00
    • 10
    52
    0

    看了mdn对于throw的解释:throw语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch块,程序将会终止。

    如下代码:并不会打印1和2.

    function test(){
        throw new Error('lalal');
        console.log(1);
    }
    test();
    console.log(2);

    但是下面的代码,为什么可以打印出2呢。不是throw之后的语句将不会执行吗?

    setTimeout(function () { throw new Error('test');console.log(1) }, 0)
    setTimeout(function () { console.log(2) }, 2000)
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 共 0 条
    • 小秋林 普通会员 1楼

      在编程中,异常是一种处理错误和异常情况的机制。当程序执行过程中出现错误或异常时,抛出异常是一种有效的方法,可以控制程序的执行流程,避免程序因为错误而崩溃。

      抛出异常的语法通常如下:

      java throw new Exception("Exception message");

      其中,Exception 是异常的类名,message 是异常的描述。

      抛出异常的目的通常是让程序停止执行,转而去处理异常。当程序遇到异常时,会调用 catch 方法来捕获异常,并处理异常。catch 方法通常有一个参数,就是抛出异常的类名,这就是 Exception 类的子类。

      下面是一个简单的例子,展示如何抛出异常:

      java public class ExceptionDemo { public static void main(String[] args) { try { int divideByZero = 5 / 0; } catch (ArithmeticException e) { System.out.println("Cannot divide by zero"); } } }

      在这个例子中,我们尝试将5除以0,这是不可能的,因此会抛出一个 ArithmeticException。我们使用 try-catch 块来捕获这个异常,并打印出一个错误消息。

      需要注意的是,只有当程序真的无法处理异常时,才应该抛出异常。在处理异常时,我们应该尽可能地确保异常能够被正确地处理,而不是让程序因为异常而崩溃。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部