忍者ブログ
[PR]
×

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



2017/05/27 13:11 |
Zend Framework2.1.3 Zend\Stdlib\ErrorHandler
Zend\Stdlib\ErrorHandlerは、PHPエラーを極めて簡単に扱えるクラスです。

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

<?php
	header('Content-type: text/html; charset=UTF-8');
	require_once('path/to/channel/vendor/autoload.php');
	use Zend\Stdlib\ErrorHandler;
	
	// エラーハンドラ開始
		ErrorHandler::start(E_ALL | E_STRICT);
	
	// エラーはハンドラに奪われる
		print($a); // Undefined variable:a
		ereg('pattern', 'string'); // Function ereg() is deprecated
	
	// パースエラーはさすがに無理
		// hogehoge // Parse error: syntax error
		
	// 例外はキャッチしない
		// throw new Exception('なんか例外');
	
	// エラーハンドラを終了して元に戻す
		$exception = ErrorHandler::stop();
		
	// stop()の返り値はErrorExceptionクラス
		print($exception->getMessage()); // Function ereg() is deprecated
		print($exception->getPrevious()->getMessage()); // Undefined variable:a

	// 破棄して終了する場合はstop()のかわりにclean()
		ErrorHandler::clean();

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

PR


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

コメント

コメントを投稿する






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



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