为啥我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出?
Posted
技术标签:
【中文标题】为啥我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出?【英文标题】:why does my JScript (windows script host) exit with 0 on an uncaught exception?为什么我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出? 【发布时间】:2009-04-07 01:17:51 【问题描述】:我有一些 JScript,它通过 ODBC 连接做一些事情。 ODBC ActiveXObject 对象引发了一个异常,并且没有在我的脚本中捕获。我预计脚本会以非 0 值退出,但事实并非如此。任何人都知道为什么会这样,以及如何让它在未捕获的异常上以非 0 值退出?
【问题讨论】:
【参考方案1】:JScript 引擎可以被认为是一个虚拟机。如果 JScript 引擎本身或脚本宿主出现某种形式的灾难性故障,您可能会得到一个非零退出代码(例如,脚本宿主找不到它需要的 DLL 之一)。
但是,如果在此“VM”上运行的脚本程序引发异常,即使是未处理的异常,也不构成引擎或主机故障。
您可以做的是将整个脚本放在一个 try 块中,然后在 catch 中抛出异常。脚本引擎将完全按照您希望处理的原始异常处理这个抛出的异常:-
try
// the rest of your script
catch(e)
throw(e); // returns nonzero exit code
【讨论】:
请注意,VBScript 也有同样的问题,但要解决这个问题要困难得多——这也是我更喜欢 JScript 而不是 VBScript 的原因之一。详情请见***.com/questions/2929715/…。以上是关于为啥我的 JScript(Windows 脚本宿主)在未捕获的异常中以 0 退出?的主要内容,如果未能解决你的问题,请参考以下文章