3

ODBC接続でいくつかのことを行うJScriptがあります。ODBC ActiveXObject オブジェクトによって例外がスローされ、スクリプトでキャッチされませんでした。スクリプトが 0 以外の値で終了すると予想していましたが、そうではありませんでした。これが事実である理由と、キャッチされていない例外で 0 以外の値で終了する方法を知っている人はいますか?

4

1 に答える 1

2

JScript エンジンは仮想マシンと考えることができます。JScript エンジン自体またはスクリプト ホストになんらかの壊滅的な障害が発生した場合、ゼロ以外の終了コードが返されることが予想されます (たとえば、スクリプト ホストが必要な DLL の 1 つを見つけることができなかったなど)。

ただし、この「VM」で実行されているスクリプト プログラムが例外をスローした場合、処理されていない例外であっても、エンジンまたはホストの障害にはなりません。

できることは、スクリプト全体を try ブロックに配置してから、catch で例外をスローすることです。スクリプト エンジンは、このスローされた例外を元の処理とまったく同じように処理します。

try
{

  // the rest of your script

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