#contents *例外処理の基礎知識 [#zfb81f22] :保護コード| 例外が発生する可能性があるコードのことです。~ 少しでも例外が発生する可能性があれば、保護すべきコードとなります。 :例外クラス,例外型| ゼロ除算、オーバーフロー、ファイルエラーなど、例外の種類で分けれたクラスです。 :例外ハンドラ| try { 保護するコード } exept on 例外クラスA do 例外ハンドラA; end; ある特定の種類の例外に対して処理を行うハンドラのことです。 :クリーンアップコード| リソースの開放など、例外が発生した時も必ず実行すべきコードのことです。~ finaly節の処理としてよく使われます。 { 割り当て処理 } try { 保護コード } finaly {クリーンアップコード} end :組み合わせた例外処理| try try {保護コード } except { 特定の予測可能な例外に対するハンドラ} on 特定の例外クラス do 特定の例外ハンドラ end; finaly {クリーンアップコード} end {クリーンアップコード } end; :例外の伝播| 例外処理においては、例外の発生箇所がサブルーチンなどの場合もあるので、~ 親の階層のルーチンや、外側に例外を伝播する必要がある場合があります。 :デフォルト例外ハンドラとその弊害| except else〜など、正体不明の例外でもすべて処理してしまうような、デフォルト例外ハンドラというものがあります。しかし、予測できる例外に対する処理だけを行うようにしないと、問題が隠されてしまう可能性があるので、~ これはなるべく使わないようにするのが普通です。~ *VisualBasic [#y8769600] 例外処理 :On Error Goto Label 文|エラーが発生したときに指定したラベルに飛びます。 :On Error Resume Next 文|エラーを無視して続行します。 トレース~ :Debug.Print 〜文|イミディエイトウィンドウに表示します。 *Delphi [#baf64e5d] :try 〜 except on do end 構文|例外をキャッチします~ try {ステートメントリスト } except on 例外1 do ルーチンまたは処理; on 例外2 do ルーチンまたは処理; else {デフォルトの例外ハンドラ} end; 例外のいくつか |EZeroDivide|ゼロ除算| |EOverflow|オーバーフロー| :try 〜 finaly 構文|例外がおきても必ず実行するブロックを定義します。 生成された例外が finally で処理されない場合,その例外は try...finally 文を越えて伝わり,try 節で既に生成されている例外は失われます。 :例外型| Delphiでは、例外型というものが宣言できます。 type EInOutError = class(Exception) ErrorCode: Integer; end; *C++ [#w995db9f] +try 〜 catche 文 *ActionScript [#y977ab51] -トレース :trace文|トレースウィンドウに内容を表示します *PHP [#n966ca37] **デバッグ [#ia7316e8] echo