2017-12-22 4 views
0

마지막 오류 얻을PHP 나는 이러한 기능을 통해 최근의 치명적인 오류 메시지를 복구하려고

throw new Exception("Error n.1"); 

내가이 문자열을 얻을 기대를 "오류 "N.1,하지만 난 (PHP는 버전에 따라 다릅니다) 같은 것을 얻을 : 나는 오류 문자열을 얻을 수있는 방법

Uncaught Exception: Error n.1 in C:\wamp\www\JUICE\projects\JATE\dist\jate\functions\errorHandler.php:66 Stack trace: #0 C:\wamp\www\JUICE\projects\JATE\dist\jate\functions\requirer.php(37): require_once() #1 C:\wamp\www\JUICE\projects\JATE\dist\jate\functions\requirer.php(5): jRequire('C:\\wamp\\www\\JUI...', false, 0) #2 C:\wamp\www\JUICE\projects\JATE\dist\jate\functions\requirer.php(15): requireComponent('C:\\wamp\\www\\JUI...', false) #3 C:\wamp\www\JUICE\projects\JATE\dist\jate\coreEngine.php(10): requireComponents('functions') #4 C:\wamp\www\JUICE\projects\JATE\examples\01essential\jate.php(15): require_once('C:\\wamp\\www\\JUI...') #5 C:\wamp\www\JUICE\projects\JATE\examples\01essential\index.php(2): require_once('C:\\wamp\\www\\JUI...') #6 {main} thrown 

을없이 시스템에 의해 추가 된 모든 것들?

+0

일부 문자열-FU를 수행

그 메시지의 특정 형식 버전에 의존하기 때문에, 당신이 할 수있는 최선의 그것에 예외 문자열을 검색입니까? Uncaught 예외 (그리고 "in"앞에) 부분 문자열 가져 오기 – dGRAMOP

+0

왜'try/catch'를 사용하지 않습니까? 그런 다음'$ error-> getMessage()'를 사용할 수있다. – Barmar

+0

@dGRAMOP 문자열이 php 문자열의 버전에 달려 있기 때문에 그럴 수 없습니다. – XaBerr

답변

1

귀하의 기대가 잘못되었습니다. 예외를 throw해도 자체적으로 오류가 발생하지 않으므로 $last_error에 표시된 것과 다릅니다. 예외를 catch하지 못하면 오류가 발생하지만 해당 오류에 대한 메시지는 Uncaught Exception이고 그 뒤에 예외 문자열뿐만 아니라 예외의 세부 정보가옵니다.

if (preg_match('/Error n\.1/', $last_error['message']) { 
    echo "Error n.1"; 
}