Просто заметка, для сохранения кода и ссылок.
Пользовался в движке не на фреймворке вот этим:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
ob_start('fatal_error_handler'); function fatal_error_handler($buffer){ $error=error_get_last(); if($error['type'] == 1){ // type, message, file, line $newBuffer='<html><header><title>Fatal Error </title></header> <style> .error_content{ background: ghostwhite; vertical-align: middle; margin:0 auto; padding:10px; width:50%; } .error_content label{color: red;font-family: Georgia;font-size: 16pt;font-style: italic;} .error_content ul li{ background: none repeat scroll 0 0 FloralWhite; border: 1px solid AliceBlue; display: block; font-family: monospace; padding: 2%; text-align: left; } </style> <body style="text-align: center;"> <div class="error_content"> <label >Fatal Error </label> <ul> <li><b>Line</b> '.$error['line'].'</li> <li><b>Message</b> '.$error['message'].'</li> <li><b>File</b> '.$error['file'].'</li> </ul> <a href="javascript:history.back()"> Back </a> </div> </body></html>'; return $newBuffer; } return $buffer; } |
Взято отсюда: http://stackoverflow.com/questions/277224/how-do-i-catch-a-php-fatal-error
Вставил код и автоматически хочу нажать ctrl+f – это форматирование кода в нетбианс. Далее был бы ctrl+s …
Для более продвинутого отлова ошибок можно заценить на примере Kohana в этой теме на kohanaframework.org.
Создавалась мной, хотя ответ был дан в другой теме намного ранее. Не все было понятно.
В двух словах всевозможные ошибки перенаправляются на обработку в свой класс
1 2 3 4 5 6 7 8 |
//Исключения ловим через класс EHandler set_exception_handler(array('EHandler', 'exception_handler')); //Ошибки ловим через стандартный метод Kohana set_error_handler(array('Kohana', 'error_handler')); //Падение ловим через класс EHandler register_shutdown_function(array('EHandler', 'shutdown_handler')); |
Ну а далее на контроллер.