javascript - 为什么我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出?

标签 javascript exception exit-code

我有一些 JScript 可以用 ODBC 连接做一些事情。 ODBC ActiveXObject 对象抛出了一个异常,但我的脚本没有捕获到。我预计脚本会以非 0 值退出,但事实并非如此。任何人都知道为什么会这样,以及如何让它在未捕获的异常中以非 0 值退出?

最佳答案

JScript 引擎可以被认为是一个虚拟机。如果 JScript 引擎本身或脚本宿主发生某种形式的灾难性故障,您可能会得到一个非零退出代码(例如,脚本宿主找不到它需要的 DLL 之一)。

但是,如果在此“VM”上运行的脚本程序抛出异常,即使是未处理的异常也不构成引擎或主机故障。

您可以做的是将整个脚本放在一个 try block 中,然后在 catch 中抛出异常。脚本引擎将完全按照您希望的原始处理方式处理这个抛出的异常:-

try
{

  // the rest of your script

}
catch(e)
{
  throw(e);  // returns nonzero exit code
}

关于javascript - 为什么我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723840/

相关文章:

python - CalledProcessError 退出状态代码 5

javascript - 在指令中使用scope.$watch时出错

javascript - google. payments.inapp.getPurchases 不起作用

javascript - 在不修改 CSS 文件的情况下删除 CSS @media 打印规则

C# - 返回后在 catch block 中重新抛出异常

c# - 我怎样才能传递异常?

javascript - setInterval 函数仅工作一次

sql-server - 如何在 SQL Server 中引发自定义异常

iphone - Xcode 退出代码和信号