PHP가 구문 분석 오류를 캡처하지 못했습니다.
漂亮男人
漂亮男人 2017-05-16 13:00:20
0
3
433

코드는 다음과 같습니다. 등록된 오류 처리 함수인register_shutdown_function이 실행되지 않는데 매우 이상합니다.

<프리><코드> error_reporting(-1); ini_set('display_errors', 1); set_error_handler(함수(){ echo "오류 처리기 실행"; }, E_ALL); set_Exception_handler(함수(){ echo "예외 처리기 실행"; }); Register_shutdown_function(함수(){ echo "종료 기능 실행"; }); 노력하다{ 0$a; }catch(예외 $e){ echo "예외 잡기"; }마지막으로{ 에코 "드디어"; }

실행 결과:

<프리><코드> 구문 분석 오류: 구문 오류, 18행의 C:\Users\mao\Documents\php\index.php에 예기치 않은 '$a'(T_VARIABLE)가 있습니다. PHP 구문 분석 오류: 구문 오류, 18행의 C:\Users\mao\Documents\php\index.php에 예기치 않은 '$a'(T_VARIABLE)가 있습니다. [0.1초만에 완료]

0$a 의도적으로 작성했는데 예외가 처리되지 않은 이유는 무엇입니까?

漂亮男人
漂亮男人

모든 응답(3)
洪涛

PHP7의 try{}catch(Error){}

를 시도해 볼 수 있습니다.

http://php.net/manual/en/clas...

으아악
PHPzhong

구문 오류는 시스템에서 가장 먼저 경고하며 시스템이 경고하는 즉시 전체 프로그램이 실행되지 않은 시스템 수준 예외입니다.

迷茫

우선, 예외와 오류는 다르다는 점을 이해해야 합니다. 예외는 정상적인 논리를 벗어난 상황이고 오류는 런타임 중 오류를 의미합니다! 오류가 발생하면 전체 코드가 더 이상 실행되지 않고 프로그램이 중단됩니다. 예외가 발생하면 try catch를 사용하여 이를 포착할 수 있으며 프로그램은 계속 실행될 수 있습니다!

분명히 코드에 구문 오류가 있어서 이 프로그램을 전혀 실행할 수 없습니다. 즉, 예외가 아닌 오류가 발생했다는 뜻입니다. 그렇다면 원하는 효과를 어떻게 얻을 수 있을까요? 먼저 구문 문제를 해결해야 합니다. 아래 코드를 보세요

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿