【WSH事始め】JScript のエラー処理とQuit()メソッドと終了コード

はじめに

 わかっている人はわかってる事柄。コレとコレどう違うの? 存在意義あるの?って思っちゃうだろうなぁって事へ ちょっとした解説を加えます。

 確かエラー処理は【前提知識】の記事じゃ扱って無かったかな? 後々取り上げる予定のオブジェクト指向コーディングでは必ずtry ... catch ステートメント入れる予定なので説明しておきます。

try ... catch ステートメントでエラー処理

 まず、普通に try ... catch 構文。

try{
    実行したい処理 ;  // このブロックでエラーのトラップをかけてる
} catch (変数名){ 
 try のブロックでエラーが起きた時の処理;
}

1. 自然発生的にエラーが起きた場合

 エラーが発生すると 自動的にErrorオブジェクトが作られます。try{} のブロックでトラップをかけているので、この中でエラー発生すると catch(e){} のブロックへ処理の制御が移ります。

2. 故意にエラーを発生させる(任意の場所で処理を中断させる)場合

 JavaScript には処理を中断するメソッドが無いので throw ステートメントを使ってエラー条件を生成します。ワザとエラー処理に飛ばして処理を中断させたりします。

 尚、任意でError オブジェクトのインスタンス生成をする事も可能ですが、Error オブジェクトのインスタンス生成だけではcatch ブロックへは飛ばないようです。


 この先の話は蛇足。

終了コードとかエラーコードと言われるもの

 実はJScript には 処理を強制終了させるメソッドが存在します。WScriptオブジェクトのメソッドなのでJavaScriptにはありません。

WScript.Quit(0);

 これでいつでもどこでも処理中断出来ます。

 Quitメソッドのパラメータですが プロセス終了コードや エラーコードを設定出来ます。設定したコードは変数「errorlevel」へ格納されます。

 変数「errorlevel」には、直前で実行したバッチファイルやコマンドがどのような状態で終了したかという情報(「終了コード」と呼ぶ)が格納されています。正常に終了したのか、異常終了であったかという情報です。cscript.exe で実行した場合に、参照可能になります。

echo %errorlevel%

 コマンドプロンプトからechoで参照出来るのですが、いい活用事例が無いんですよね。

 尚、wscript.exe で実行した時はコードを返さないので、パラメータは無効です。


この記事が気に入ったらサポートをしてみませんか?