여러 종류의 예외를 try-catch했을 때의 거동

2201 단어 Try-CatchPHP7

소개



PHP의 공식 문서를 보면서 여러 예외 클래스에 걸친 try-catch의 처리를 하나의 catch 블록으로 수행하는 방법을 접하고 있었으므로, 그것에 대해 한 간단한 실험을 소개합니다.
환경: XAMMP, PHP7.4.5

문제의 공식 문서






인용 소스 : 예외에 대한 PHP 공식 문서

생각한 것



try 블록에서 여러 클래스에서 예외가 throw되면 어떻게됩니까?

실험



test.php
<?php try {
    throw new PDOException("PDOの例外だよ");
    throw new Exception("普通の例外だよ");
} catch (PDOException | Exception $e) {
    echo $e->getMessage();
}


실행 결과




참고: Chrome에서의 스크린샷입니다.
첫 번째 throw에서 처리가 catch로 날아가고 두 번째 (Exception 클래스)는 throw되지 않았습니다.

요약



원래 복수 클래스 예외가 동시에 발생하는 것 자체가 치명적이므로 그렇게 하지 않게 해 두는 것이 큰 전제이지만, try 블록에서 복수의 예외가 발생하고 있는 경우, 제1의 throw에 의해 날려 두 번째 throw를 놓칠 가능성은 없어도 없이. 아직도 달려나 & 첫 투고입니다만 포츠포츠와 계속해 가면 좋겠습니다.

좋은 웹페이지 즐겨찾기