3

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

4

1 回答 1

2

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

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

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

try
{

  // the rest of your script

}
catch(e)
{
  throw(e);  // returns nonzero exit code
}
于 2009-04-07T09:09:14.467 回答