我有一些 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/