php: 예외를 포착하고 실행을 계속할 수 있습니까?

예외를 포착하여 스크립트 실행을 계속할 수 있습니까?



질문에 대한 답변



네, 하지만 실행하는 내용에 따라 달라집니다.

예.

try {
a();
b(); } catch(Exception $ignored){ }
c(); 

c()항상 실행됩니다.하지만 만약a()예외를 던지고,b()는 실행되지 않습니다.

물건만 넣어주세요.try서로 의지하는 블록입니다.예.b어떤 결과에 의존하다a라고 하는 것은 말이 안 된다.b그 후try-catch차단합니다.




네, 실행을 계속하려는 곳에서 예외를 포착하면 됩니다.

try {
SomeOperation(); } catch (SomeException $ignored) {
// do nothing... php will ignore and continue
// but maybe use "ignored" as name to silence IDE warnings.
} 

물론 이것은 매우 중요한 오류가 될 수 있는 것을 묵묵히 폐기하는 문제를 안고 있습니다.일부 조작()이 실패하면 다른 미묘하고 이해하기 어려운 문제가 발생할 수 있지만 예외를 자동으로 폐기할지는 알 수 없습니다.




물론입니다.

try {
throw new Exception('Something bad'); } catch (Exception $e) {
// Do nothing } 

예외에 대한 PHP 문서를 읽어보실 수 있습니다.




php >7

새로운 인터페이스인 슬로우 가능


try {
// Code that may throw an Exception or Error.
} catch (Throwable $t) {
// Handle exception
}
echo "Script is still running..."; // this script will be executed. 



네.

try {
Somecode(); catch (Exception $e) {
// handle or ignore exception here.
} 

그러나 php에는 예외와는 다른 에러 코드도 있습니다.이것은 php가 oop 프리미티브를 가지기 전의 레거시 홀드오버입니다.대부분의 라이브러리의 빌트인에서는, 에러 코드가 발생하고 있습니다만, 예외는 발생하지 않습니다.에러 코드를 무시하려면 , @: 가 붙은 함수를 호출합니다.

@myfunction();