2012-04-18 1 views
0

PHP에서 정상 던져 캐치되지 않는 예외는 다음과 유사한 출력을 생성합니다 :PHP가 잡히지 않은 예외를 표시하는 방법을 재정의 할 수 있습니까?

 
Fatal error: Uncaught exception 'Exception' with message 'Insufficient permissions or something' in /home/codemonkey/foo/bar/File.php:143 
Stack trace: 
#0 /home/codemonkey/dev/foo/bar/SomeOtherFile.php(85): foo\bar\File::fromUpload(Array) 
#1 /home/codemonkey/dev/foo/bar/OmniDataFileImport.php(35): foo\bar\OmniDataFileImport->performFileImportLogic() 
#2 [internal function]: foo\bar\OmniDataFileImport->post(Object(Request), false) 
#3 /home/codemonkey/dev/foo/vendor/tonic/lib/tonic.php(654): call_user_func_array(Array, Array) 
#4 /home/codemonkey/dev/foo/dispatch.php(22): Resource->exec(Object(Request)) 
#5 {main} 
    thrown in /home/codemonkey/dev/foo/broadnet/files/File.php on line 143 

메시지와 스택 추적이 멋지다,하지만 난 정말 자세한 내용 싶습니다. 이러한 이유로 나는 지역 변수와 그 값과 같은 더 많은 정보로 Exception을 확장하고자한다. 문제는 PHP가 여전히 위의 동일한 정보를 출력하지만 "Uncaught exception 'MyException'이라는 텍스트가 출력된다는 것입니다.

PHP가 잡히지 않은 예외를 표시하는 방법을 무시할 수 있습니까? 캐치되지 않은 모든 예외를 잡기 위해 백업으로 설정할 수있는 PHP 함수에 대해 읽었습니다. 아마도 그 기능을 사용하여 내 메시지를 형식화하고 프로세스를 종료 할 수 있습니다. 당신은 set_exception_handler() 찾고있는 주제

+0

각'throw '사이트에서 코드를 작성하지 않고 PHP를 로컬 변수로 가져 오는 방법은 없습니다. 귀하의 통제하에 있지 않은 코드에 의해 던져지는 예외에는 지역 변수가 없으므로 * 할 수있는 것은 없습니다 *. – Jon

+0

하지만 여전히 멋진 일을 할 수 있습니다. :-) – Hubro

답변

1

에 대한 모든 유용한 정보에 대한

감사합니다.

그러나 로컬 변수 등은 검색 할 수 없습니다. 프로덕션 시스템에 적합하지 않은 디버깅 확장을 사용하지 않으면 PHP의 오류 처리/디버깅이 다소 불량합니다.

+0

그건 아무 문제 없어요. 내가 예외 사항을 던지는 사람인만큼, 나는 적어도 내가 느낀 추가 정보를 따라 태그를 붙이고 적절히 표시 할 수있다. 감사! – Hubro

관련 문제