VBAのエラー処理(XVIII)

エラー(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のを

 

おすすめ

転載: www.cnblogs.com/sunyllove/p/11348364.html