PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

set_exception_handler - ユーザー定義の例外ハンドラ関数を設定する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler ユーザー定義の例外ハンドラ関数を設定する

説明

callable set_exception_handler ( callable $exception_handler )

例外が try/catch ブロックの中でキャッチされなかった場合の デフォルトの例外ハンドラを設定します。 実行は、exception_handler がコールされた後に 停止します。

パラメータ

exception_handler

キャッチされない例外が発生した際にコールされる関数の名前。 このハンドラ関数は、パラメータをひとつとる必要があります。 このパラメータは、スローされた例外オブジェクトとなります。 PHP 7 より前のバージョンでは、ハンドラのシグネチャは、次のようになります。

void handler ( Exception $ex )

PHP 7 からは、大半のエラーが Error 例外として報告されるようになりました。 これらもこのハンドラで扱うことになるでしょう。ErrorException は、どちらも Throwable インターフェイスを実装しています。 PHP 7 以降のハンドラのシグネチャは、次のようになります。

void handler ( Throwable $ex )

NULL を渡すと、このハンドラをデフォルトの状態に戻せます。

警告

コールバックの ex パラメータにタイプヒントとして Exception を明示すると、 PHP 7 での例外の階層の変更に伴う問題が発生することに注意しましょう。

返り値

前に定義された例外ハンドラの名前、またはエラー発生時に NULL を返します。 前にハンドラが定義されていない場合にも NULL が返されます。

変更履歴

バージョン 説明
7.0.0 exception_handler に渡すパラメータの型が、 Exception から Throwable に変わりました。
5.5.0 これより前のバージョンでは、NULL を渡した場合の返り値が TRUE でした。 PHP 5.5.0 以降は、以前に設定されていたハンドラを返すようになります。

例1 set_exception_handler() の例

<?php
function exception_handler($exception) {
  echo 
"Uncaught exception: " $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new 
Exception('Uncaught Exception');
echo 
"Not Executed\n";
?>

参考


忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「set_exception_handler - ユーザー定義の例外ハンドラ関数を設定する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | set_exception_handler - ユーザー定義の例外ハンドラ関数を設定する」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: