2017-09-05 1 views
0

내가 가지고 내가 일하고 있어요 오류 로깅 부분에서 작업 갇혀, 그리고 궁극적으로는 다음에 양도 실행 오류가 발생했습니다 '오류가 발생했습니다.'예외가 발생했습니다.이 메서드에서는 찾을 수 없지만 예외가 발생할 수 있습니다. 'PHP의 시도 캐치 마지막

catch() 블록의 코드를 실행하려면 어떻게해야합니까? 전혀 실행하지 않는 것 같습니다!

+0

당신이 사용하는 PHP 버전은 무엇? – fubar

+0

네임 스페이스를 사용하고 있습니까? (none) 예외 ("Exception $ e) {' – ishegg

+1

} @RahulBhatnagar는 'nonexistentfunction()'대신에이'throw new \ Exception ("사용자 정의 예외! ")를 사용하려고 시도합니다. –

답변

3

PHP에서 정의되지 않은 함수를 호출하면 예외는 아니지만 치명적인 오류가 발생합니다.

따라서 Error 유형의 개체를 잡아야합니다. 또는 ErrorException 클래스가 모두있는 Throwable 개체를 잡을 수 있습니다.

http://php.net/manual/en/language.errors.php7.php

<?php 

$errorMsg = 'No Errors Detected'; 

try { 
    nonexistentfunction(); 
} 
catch (Throwable $e) { 
    $errorMsg = 'Oh well, something went wrong'; 
} 
finally{ 
    $this->logger->log($errorMsg); 
} 
+0

감사합니다. 존재하지 않는 함수인데,이 대답은 왜 catch가 작동하지 않는지에 대한 완전한 이해를 제공하므로 올바른 것으로 표시됩니다. –