여러 종류의 예외를 try-catch했을 때의 거동
소개
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를 놓칠 가능성은 없어도 없이. 아직도 달려나 & 첫 투고입니다만 포츠포츠와 계속해 가면 좋겠습니다.
Reference
이 문제에 관하여(여러 종류의 예외를 try-catch했을 때의 거동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/EbiTT/items/513a77d34498bb365e33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
인용 소스 : 예외에 대한 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를 놓칠 가능성은 없어도 없이. 아직도 달려나 & 첫 투고입니다만 포츠포츠와 계속해 가면 좋겠습니다.
Reference
이 문제에 관하여(여러 종류의 예외를 try-catch했을 때의 거동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/EbiTT/items/513a77d34498bb365e33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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를 놓칠 가능성은 없어도 없이. 아직도 달려나 & 첫 투고입니다만 포츠포츠와 계속해 가면 좋겠습니다.
Reference
이 문제에 관하여(여러 종류의 예외를 try-catch했을 때의 거동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/EbiTT/items/513a77d34498bb365e33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
원래 복수 클래스 예외가 동시에 발생하는 것 자체가 치명적이므로 그렇게 하지 않게 해 두는 것이 큰 전제이지만, try 블록에서 복수의 예외가 발생하고 있는 경우, 제1의 throw에 의해 날려 두 번째 throw를 놓칠 가능성은 없어도 없이. 아직도 달려나 & 첫 투고입니다만 포츠포츠와 계속해 가면 좋겠습니다.
Reference
이 문제에 관하여(여러 종류의 예외를 try-catch했을 때의 거동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/EbiTT/items/513a77d34498bb365e33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)