忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


share

2025/04/07 10:52 |
Zend Framework2.1.3 Zend\Stdlib\ErrorHandler
Zend\Stdlib\ErrorHandlerは、PHPエラーを極めて簡単に扱えるクラスです。

通常PHPのエラー発生時は、画面に文字列としてエラーメッセージなどが表示されてしまいます。
わりかし扱いづらいので、ついつい@とかini_set('display_errors', 0);とかやってしまいがちです。
そこでErrorHandler。
PHPエラーを吸収し、例外として扱うことが可能になります。
まあset_error_handler()のラッパーです。

01<?php
02    header('Content-type: text/html; charset=UTF-8');
03    require_once('path/to/channel/vendor/autoload.php');
04    use Zend\Stdlib\ErrorHandler;
05     
06    // エラーハンドラ開始
07        ErrorHandler::start(E_ALL | E_STRICT);
08     
09    // エラーはハンドラに奪われる
10        print($a); // Undefined variable:a
11        ereg('pattern', 'string'); // Function ereg() is deprecated
12     
13    // パースエラーはさすがに無理
14        // hogehoge // Parse error: syntax error
15         
16    // 例外はキャッチしない
17        // throw new Exception('なんか例外');
18     
19    // エラーハンドラを終了して元に戻す
20        $exception = ErrorHandler::stop();
21         
22    // stop()の返り値はErrorExceptionクラス
23        print($exception->getMessage()); // Function ereg() is deprecated
24        print($exception->getPrevious()->getMessage()); // Undefined variable:a
25 
26    // 破棄して終了する場合はstop()のかわりにclean()
27        ErrorHandler::clean();

ErrorHandler::start()で開始、stop()で終了してエラーを捕捉できるという非常に楽な作りとなっています。
この際だからPHPエラーとはさよならしてしまいましょう。

PR

share

2013/04/17 22:58 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<AuraPHP 1.0.0 Auraをインストール | HOME | PHP5.4.7 PHPの字句解析を行う>>
忍者ブログ[PR]