Şahsen, ben hata istisnalar her zaman kullanabilirsiniz (http://us.php.net/manual/en/class.errorexception.php) ...
Yani, benim kod başında, ben şu var:
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
Sonra, ben dev bir try {} catch {} bloğu içinde herşeyi sarın. Ben yapmazsam yüzden ben "yakalamak" hata daha yüksek, ancak, bu istemciye bir hata mesajı görüntüler edebilirsiniz:
ob_start();
try {
//Do Stuff Here, include files, etc
} catch (Exception $e) {
ob_end_clean();
//Log the error here, including backtraces so you can debug later
//Either render the error page here, or redirect to a generic error page
}
Güzelliği bu hata her türlü yakalayacağız olmasıdır. Yani benim DB sınıfta, ben sadece (İstisna genişleten) bir DatabaseException atmak. Yani incelikle başarısız istiyorsanız benim arama yaptığınızda bunun için / catch deneyebilirsiniz, ya da ben onu üst try {} catch bloğu tarafından ele sağlayabilirsiniz.