Modified: phpdoc/ja/trunk/language/exceptions.xml =================================================================== --- phpdoc/ja/trunk/language/exceptions.xml 2015-02-21 17:09:57 UTC (rev 335972) +++ phpdoc/ja/trunk/language/exceptions.xml 2015-02-22 00:49:34 UTC (rev 335973) @@ -1,180 +1,11 @@ - + 例外(exceptions) - - - PHP 5 は、他のプログラミング言語に似た例外モデルを有しています。 - PHP 内で例外が投げられ ("throw" され)、それが - 捕捉され ("catch" され) ます。発生した例外を - 捕捉するには、コードを try ブロックで囲みます。 - 各 try ブロックには、対応する catch - ブロックが存在する必要があります。異なる型の例外を捕捉するために - 複数の catch フロックを使用することができます。 - 通常の実行時 (try ブロック内で例外が投げられなかった - 場合、あるいは投げられた例外に対応する catch - ブロックが存在しなかった場合) は、catch - ブロック内は処理されず、それ以降から処理が続けられます。 - catch ブロックの中から例外を投げる - (あるいは投げなおす) こともできます。 - - - 例外が投げられた場合、その命令に続くコードは実行されず、 - PHP は最初にマッチする catch ブロックを探します。 - 例外が捕捉されない場合、PHP は "Uncaught Exception ..." - というメッセージとともに - 致命的なエラー(fatal error)を発行します。 - ただし、set_exception_handler でハンドラが - 定義されている場合を除きます。 - - - PHP 5.5 以降では、catch ブロックの後に - finally ブロックも指定できるようになりました。 - finally ブロックの何かに書いたコードは、 - try および catch ブロックの後で常に実行されます。 - 例外がスローさされたかどうかには関係ありません。 - finally ブロックを実行してから、通常の処理を続行します。 - - - スローされるオブジェクトは、Exception クラスあるいは - Exception のサブクラスのインスタンスでなければなりません。 - それ以外のオブジェクトをスローしようとすると - PHP の Fatal Error が発生します。 - - - - PHP の内部関数の多くは - エラー報告 - を使っており、例外を使っているのは新しい - オブジェクト指向 - の拡張モジュールのみです。 - しかし、ErrorException - を使えば簡単にエラーを例外に変換することができます。 - - - - - Standard PHP Library (SPL) - には組み込みの例外が数多く用意されています。 - - - - 例外を投げるには - -getMessage(), "\n"; -} - -// 実行は継続される -echo "Hello World\n"; -?> -]]> - - &example.outputs; - - - - - - 例外処理での <literal>finally</literal> ブロック - -getMessage(), "\n"; -} finally { - echo "First finally.\n"; -} - -try { - echo inverse(0) . "\n"; -} catch (Exception $e) { - echo '捕捉した例外: ', $e->getMessage(), "\n"; -} finally { - echo "Second finally.\n"; -} - -// 処理を続行します -echo "Hello World\n"; -?> -]]> - - &example.outputs; - - - - - - ネストした例外 - -getMessage()); - } - } -} - -$foo = new Test; -$foo->testing(); - -?> -]]> - - &example.outputs; - - - - - + 例外を拡張する @@ -387,6 +218,198 @@ + + + PHP 5 は、他のプログラミング言語に似た例外モデルを有しています。 + PHP 内で例外が投げられ (&throw; され)、それが + 捕捉され (&catch; され) ます。発生した例外を + 捕捉するには、コードを &try; ブロックで囲みます。 + 各 &try; ブロックには、対応する &catch; + ブロックあるいは &finally; ブロックが存在する必要があります。 + + + + スローされるオブジェクトは、Exception クラスあるいは + Exception のサブクラスのインスタンスでなければなりません。 + それ以外のオブジェクトをスローしようとすると + PHP の Fatal Error が発生します。 + + + + + <literal>catch</literal> + + さまざまな型の例外を捕捉するために + 複数の &catch; フロックを使用することができます。 + 通常の実行時 (&try; ブロック内で例外が投げられなかった + 場合、あるいは投げられた例外に対応する &catch; + ブロックが存在しなかった場合) は、&catch; + ブロック内は処理されず、それ以降から処理が続けられます。 + &catch; ブロックの中から例外を &throw; する + (あるいは &throw; しなおす) こともできます。 + + + 例外が投げられた場合、その命令に続くコードは実行されず、 + PHP は最初にマッチする &catch; ブロックを探します。 + 例外が捕捉されない場合、PHP は "Uncaught Exception ..." + というメッセージとともに + 致命的なエラー(fatal error)を発行します。 + ただし、set_exception_handler でハンドラが + 定義されている場合を除きます。 + + + + + <literal>finally</literal> + + PHP 5.5 以降では、&catch; ブロックの後に + &finally; ブロックも指定できるようになりました。 + &finally; ブロックの何かに書いたコードは、 + &try; および &catch; ブロックの後で常に実行されます。 + 例外がスローさされたかどうかには関係ありません。 + + + + + &reftitle.notes; + + + + PHP の内部関数の多くは + エラー報告 + を使っており、例外を使っているのは新しい + オブジェクト指向 + の拡張モジュールのみです。 + しかし、ErrorException + を使えば簡単にエラーを例外に変換することができます。 + + + + + Standard PHP Library (SPL) + には組み込みの例外が数多く用意されています。 + + + + + + &reftitle.examples; + + + 例外を投げるには + +getMessage(), "\n"; +} + +// 実行は継続される +echo "Hello World\n"; +?> +]]> + + &example.outputs; + + + + + + 例外処理での <literal>finally</literal> ブロック + +getMessage(), "\n"; +} finally { + echo "First finally.\n"; +} + +try { + echo inverse(0) . "\n"; +} catch (Exception $e) { + echo '捕捉した例外: ', $e->getMessage(), "\n"; +} finally { + echo "Second finally.\n"; +} + +// 処理を続行します +echo "Hello World\n"; +?> +]]> + + &example.outputs; + + + + + + ネストした例外 + +getMessage()); + } + } +} + +$foo = new Test; +$foo->testing(); + +?> +]]> + + &example.outputs; + + + + + +