エラー(VBScriptの/ VBA)プログラミングの3つのタイプがあります。
- 構文エラー
- ランタイムエラー
- ロジックエラー
構文エラー
(また、解析エラーとして知られている)の構文エラーは、時間のVBScriptの解釈で発生しました。それは閉じ括弧がないためたとえば、次の行は、構文エラーが発生します。
機能ErrorHanlding_Demo() DIM X、Y X = " Yiibai Yiibaiを" Yが = UCASE (Xの エンド機能を
ランタイムエラー
(また、例外とも呼ばれる)ランタイムエラーは、説明した後、実行中に発生しました。
構文はここに正確であるので、たとえば、次の行では、ランタイムエラーが発生しますが、実行時にそれが呼び出すしようとしているfnmultiply
が、これは存在していない機能です。
関数ErrorHanlding_Demo1() 薄暗いX、Y 、X = 10 、Y = 20 、Z = fnadd(x、y)は 、A = fnmultiply(x、y)は エンド機能 関数fnadd(x、y)は fnadd = X + Y エンド機能を
ロジックエラー
論理エラーは、間違ったタイプのトレースに最も困難なことがあります。これらのエラーは文法のエラーや実行時の結果ではありません。これとは対照的に、あなたはロジック駆動スクリプトでミスをして、期待される結果を取得していないとき、これは起こります。
それはビジネスのニーズに依存し、プログラムのロジックの種類に参加するので、あなたは、これらのエラーをキャッチすることができないかもしれません。
例えばゼロによる、デジタルデバイド、または無限ループを入力するためのスクリプトを書きます。
Errorオブジェクト
我々は、エラーメッセージを表示することで、実行を停止するには、実行時エラーがあるとします。あなたがエラーをキャッチしたい場合は、開発者として、そして使用しError
たオブジェクトを。
例
次の例では、Err.Number
エラー番号が与えられると、Err.Description
エラーを以下に示します。
Err.Raise 6は、 「オーバーフローエラーを上げます。 MsgBox " エラー#"&CStr関数(Err.Numberに)&" "&Err.Description Err.Clear " エラーをクリア。
エラー処理
VBAエラー処理ルーチンを有効にする、また、エラー処理ルーチンを無効にするために使用することができます。いいえOn Error
、エラーメッセージが表示され、急停止の実装:ステートメントは、エラーが発生した任意の実行時には致命的ではありません。
上の エラー { 後藤 [行| 0 | - 1 ] | 再開 次に }
番号 | キーワード | 説明 |
---|---|---|
1 | 後藤ライン | 行に必要なライン引数で指定した有効エラー処理ルーチンが開始しました。行を指定する必要がありOn Error そうでない場合は、コンパイル時エラーが発生し、同じプロセスで文を。 |
2 | 後藤0 | 有効現在のプロシージャでエラーハンドラを無効にしてリセットNothing 。 |
3 | 後藤-1 | 例外を有効にし、それをリセットする現在のプロセスを無効にしてくださいNothing 。 |
4 | 次の再開 | あなたはランタイムエラーが発生した指定した場合、制御は後に発生した文の虚偽の陳述に移し、その時点から継続されます。 |
例
公共の サブOnErrorDemo() で エラー 後藤 ErrorHandlerのは、 「エラー処理ルーチンを有効にします。 DIM X、Y、Z としては 整数 X = 50 、Y = 0 、Z = X / Y ' ゼロ除算エラーを発生させ のErrorHandlerを: ' エラー処理ルーチン。 選択する ケース Err.Numberには、 「エラー番号を評価します。 ケース 10 「ゼロ除算エラー のMsgBox(『あなたは、ゼロで除算しようとしました!』) ケース エルス MsgBoxに " UNKNOWN ERROR -エラー#"&Err.Numberに&" :"&Err.Description エンド を選択 再開 次 End Subのを