抛出但未处理的异常会发生什么情况



当我在谷歌上搜索什么是throw-do时,得到的答案是它抛出了一个异常。哇!那对我来说毫无意义。

从那以后,我了解到多亏了stackoverflow,它会抛出错误,直到最近的处理程序对它做了什么

已经有一个问题了,但它根本不能回答我的问题。如果你不处理投掷,它会是什么样子?它会提醒用户吗?它只显示在控制台上吗?它是不是撞到了我家附近的人,导致他们在凌晨3点敲我的门?

有人能把它分解成什么样子吗?这样我就可以用现实世界的类比来想象它了。就像一个例外,把垃圾放进袋子里,如果没有人捡,就放在人行道上捡。。。。我不知道。请帮忙解释。

我个人喜欢throw:的MDN摘要

throw语句引发用户定义的异常。当前函数的执行将停止(throw之后的语句将不会执行(,控制将传递给调用堆栈中的第一个catch块。如果调用方函数中不存在catch块,则程序将终止。

链接的文档中还有一些示例可以帮助您更好地理解throw

回答问题:

如果你不处理投掷,它会是什么样子?它会提醒用户吗?它只显示在控制台上吗?

答案是"是";,它确实显示在您的控制台中。通常是亮红色,带有错误堆栈,显示它被抛出的位置。

console.log("Hello");
throw "example error"; // also visible in JavaScript console of your browser
console.log("World!");

答案很简单"这取决于";。该实现定义了用户代码没有捕捉到的异常会发生什么。我所知道的所有浏览器都会将其记录在控制台中,并停止执行该脚本或函数,否则就让页面正常工作。Node.js将错误打印到STDERR,并使用非零退出代码终止进程。

在这两种情况下,例外仍然是";"已处理";通过执行用户代码的进程。

相关内容

最新更新