키 테이크 아웃
PHP의 예외 클래스는 파일 및 줄 번호와 같은 예외에 대한 정보를 얻는 방법과 오류를 설명하는 메시지를 제공합니다. 예외가 잡히지 않으면 기본 예외 핸들러에 의해 처리되며 일반적으로 치명적인 오류 및 스크립트 종료가 발생합니다.
PHP의 예외를 처리하기위한 기본 구문은 Try-Catch 블록입니다. Try Block에는 예외가 발생할 수있는 코드가 포함되어 있으며 캐치 블록에는 예외를 처리 할 코드가 포함되어 있습니다. 시도 블록 내부에서 예외가 발생하면 스크립트는 해당 캐치 블록으로 이동하여 스크립트가 예외를 처리하고 원하는 경우 계속 실행할 수 있습니다.
내장 예외 클래스를 확장하여 사용자 정의 예외 클래스를 만들 수 있습니다. 이를 통해 특정 유형의 예외를보다 맞춤화되고 체계적인 방식으로 처리 할 수 있습니다. 사용자 정의 예외 클래스를 만들면 특정 유형의 예외를 포착하고 발생하는 특정 문제에 따라 다르게 처리 할 수 있습니다.
이 기사에서는 PHP의 예외의 기본 사항과 효과적으로 사용하는 방법에 대해 논의 할 것입니다.
모든 프로그래머는 매일 오류 및 예기치 않은 상황을 처리해야합니다. 그렇게하는 한 가지 방법은 예외를 사용하는 것입니다. 예외를 제외하고는 더 강력하고 버그가 덜 발생하는 코드를 작성할 수 있습니다. 예외를 유발할 수있는 오류의 예로는 파일 시스템에 존재하지 않는 파일을 열려고 시도하거나 숫자를 0으로 나누려는 시도가 포함됩니다.
예외는 무엇입니까?
예외는 프로그램 실행 중에 발생하는 원치 않는 또는 예상치 못한 이벤트입니다. 지침의 정상적인 흐름을 방해하고 다양한 오류로 인해 발생할 수 있습니다. PHP에서 예외는 클래스 예외로 표시됩니다.
PHP의 예외 클래스는 언어의 모든 예외에 대한 기본 클래스입니다. 파일이 발생한 파일 및 줄 번호와 같은 예외에 대한 정보를 얻는 방법과 오류를 설명하는 메시지를 제공합니다.
예외가 발생하면 적절한 지침으로 코드 블록으로 잡을 수 있습니다. 예외가 잡히지 않으면 기본 예외 핸들러에 의해 처리되며 일반적으로 치명적인 오류와 스크립트 종료가 발생합니다.
기본 사용
PHP의 예외를 처리하기위한 기본 구문은 Try-Catch 블록입니다. Try Block에는 예외가 발생할 수있는 코드가 포함되어 있으며 캐치 블록에는 예외를 처리 할 코드가 포함되어 있습니다. 시도 블록 안에 예외가 발생하면 스크립트가 해당 캐치 블록으로 이동합니다. 예는 다음과 같습니다. <span>try {
</span> <span>// code that may throw an exception
</span> <span>$file = fopen('nonexistent.txt', 'r');
</span><span>} catch (Exception $e) {
</span> <span>// code to handle the exception
</span> <span>echo 'An error occurred: ' . $e->getMessage();
</span><span>}
</span>
로그인 후 복사
로그인 후 복사
이 예에서 시도 블록 내부의 코드는 존재하지 않는 파일을 열려고 시도합니다. 이것은 예외가 발생하며 캐치 블록에 의해 잡힌 예외가 발생합니다. 캐치 블록은 오류 메시지를 인쇄합니다. 이 예제에서 Try-Catch 블록을 사용하지 않았고 예외가 발생하면 스크립트가 종료되고 오류 메시지가 표시됩니다. 이로 인해 스크립트가 계속 실행할 수 없습니다. Try-Catch 블록을 사용하면 스크립트가 예외를 우아하게 처리하고 원하는 경우 계속 실행할 수 있습니다.
던지기 키워드
예외를 던지기 위해 Throw 키워드를 사용할 수 있습니다. Throw 키워드는 시도 블록 내부에서 특정 조건이 충족 될 때 예외를 던지기 위해 사용됩니다. 예외는 유형 예외 또는 사용자 정의 예외 클래스 일 수 있습니다. 예는 다음과 같습니다.
이 예에서, 분할 함수는 $ a와 $ b의 두 매개 변수를 취하고 $ a를 $ b로 나누는 결과를 반환 할 것으로 예상됩니다. 그러나 두 번째 매개 변수가 0이면 예외가 발생합니다.
사용자 정의 예외 생성
내장 예외 클래스를 확장하여 사용자 정의 예외 클래스를 만들 수도 있습니다. 사용자 정의 예외 클래스를 만들면 특정 유형의 예외를보다 맞춤형으로 구성 할 수 있습니다. 내장 된 예외 클래스를 확장하여 예외 클래스의 모든 속성과 방법을 상속하는 자체 예외 클래스를 만들 수 있지만 예외 유형에 맞는 고유 한 속성 및 메소드를 추가 할 수 있습니다. 처리하려고합니다. 이를 통해 예외가 어떻게 처리되는지를 더 많이 제어 할 수 있으며 코드를보다 읽기 쉽고 유지 관리 할 수 있습니다.
또한, 사용자 정의 예외 클래스를 만들면 특정 유형의 예외를 포착하고 발생하는 특정 문제에 따라 다르게 처리 할 수 있습니다. 사용자 정의 예외 클래스를 만들려면 새 클래스를 정의하고 다음과 같은 예외를 확장 할 수 있습니다.
그런 다음 나중에이 클래스를 던지기 예외로 사용할 수 있습니다.
다음은 CustomerRorMessage () 메소드를 사용자 정의 예외 클래스에 추가하는 방법의 예입니다.
<span>function divide($a, $b) {
</span> <span>if ($b == 0) {
</span> <span>throw new Exception('Cannot divide by zero');
</span> <span>}
</span> <span>return $a / $b;
</span><span>}
</span>
<span>try {
</span> <span>echo divide(5, 0);
</span><span>} catch (Exception $e) {
</span> <span>echo 'An error occurred: ' . $e->getMessage();
</span><span>}
</span>
로그인 후 복사
이 예에서는 DivideByzeroException 클래스에 CustomerRorMessage라는 메소드를 추가했습니다. 이 메소드는 예외 클래스의 getline (), getFile () 및 getMessage () 메소드를 사용하여 사용자 정의 오류 메시지를 작성합니다.
우리는 다음과 같은 캐치 블록 에서이 사용자 정의 메소드를 사용할 수 있습니다 : <span>try {
</span> <span>// code that may throw an exception
</span> <span>$file = fopen('nonexistent.txt', 'r');
</span><span>} catch (Exception $e) {
</span> <span>// code to handle the exception
</span> <span>echo 'An error occurred: ' . $e->getMessage();
</span><span>}
</span>
로그인 후 복사
로그인 후 복사
getline () 메소드는 예외가 발생하는 줄 번호를 반환하고 getFile () 메소드는 예외가 발생하는 파일 이름을 반환하여보다 유익한 오류 메시지를 가질 수 있습니다. 이 CustomerRorMessage 메소드를 사용하면 출력은 "파일 (파일 이름)의 라인에 오류 (라인 번호) : 0으로 나눌 수 없습니다"와 같은 것이며 예외를 디버깅 해야하는 경우 더 자세한 정보가 제공됩니다. >
이 방법으로, 우리는 사용자 정의 기능을 추가하거나 다른 방식으로 처리 할 수 있도록 다른 유형의 예외를 던질 수 있습니다. .
결론
예외는 PHP의 오류 및 예기치 않은 상황을 처리하기위한 강력한 도구입니다. 코드 실행의 일반적인 흐름을 오류 처리와 분리하여 코드를 더욱 강력하고 버그를 덜받을 수 있습니다. 던지기 형태의 예외를 사용하고 키워드를 시도하고 포획하고 코드에서 사용자 정의 예외의 힘을 활용함으로써보다 강력하고 읽기 쉽고 유지 관리 가능하게 만들 수 있습니다. .
PHP 예외 처리에 대한 자주 묻는 질문 (FAQ)
PHP의 오류와 예외의 차이점은 무엇입니까? PHP에서 오류와 예외는 프로그램의 다른 유형의 문제 상황을 처리하는 데 사용됩니다. 오류는 프로그램이 계속 실행되는 것을 방지하는 심각한 문제입니다. 일반적으로 코드 문제 또는 시스템 문제로 인해 발생합니다. 반면에, 프로그램 실행의 정상 흐름을 변화시키는 조건은 예외입니다. 일반적으로 예상되는 취급에 사용되지만 유효하지 않은 입력 또는 파일을 찾을 수없는 파일과 같은 잠재적 인 문제가 발생할 수 있습니다. Or 내장 예외 클래스를 확장합니다. 예외 클래스에 사용자 정의 속성과 방법을 추가하여 예외적 인 조건에 대한보다 구체적인 정보를 제공 할 수 있습니다. 예는 다음과 같습니다.
클래스 MyException 확장 예외 {} 그런 다음 표준 예외처럼 사용자 정의 예외를 던지고 포착 할 수 있습니다.
PHP의 여러 예외를 어떻게 처리 할 수 있습니까?
PHP에서 여러 캐치 블록을 사용하여 여러 예외를 처리 할 수 있습니다. 각 캐치 블록은 특정 유형의 예외를 처리합니다. 예외가 발생하면 캐치 블록을 순서대로 확인하고 던진 예외를 처리 할 수있는 첫 번째 블록이 실행됩니다. 예는 다음과 같습니다. try {
// 예외를 던질 수있는 코드 } catch (myException $ e) { // myException } catch (예외 $ e ) { // 다른 예외 처리
} PHP 예외 처리에서 최종 블록의 목적은 무엇입니까?
PHP 예외 처리의 마지막 블록은 예외가 발생했는지 여부에 관계없이 실행 해야하는 코드를 지정하는 데 사용됩니다. 파일 또는 데이터베이스 연결과 같이 항상 실행 해야하는 정리 코드에 유용합니다. 최종 블록은 선택 사항이며 캐치 블록 후에 추가됩니다.
PHP에서 예외를 어떻게 다시 로우려면?
PHP에서 캐치 내에서 던지기 문을 사용하여 예외를 다시 줄 수 있습니다. 차단하다. 이것은 예외를 부분적으로 처리하고 추가 처리를 위해 더 높은 수준으로 전파하려는 경우 유용합니다. 예는 다음과 같습니다. 예외를 던질 수있는 { // 코드 } catch (예외 $ e) { // 예외를 부분적으로 처리하는
trash $ e ; // 예외
}
PHP 예외 처리에서 getMessage 메소드의 사용은 무엇입니까?
PHP 예외 처리의 getMessage 메소드는 문자열 표현을 얻는 데 사용됩니다. 예외 메시지. 이 방법은 예외 클래스에 정의되며 예외를 확장하는 클래스의 모든 객체에서 호출 될 수 있습니다. 예외 메시지는 일반적으로 다음과 같이 예외가 발생할 때 설정됩니다. 새로운 예외 (“오류 메시지”).
PHP에서 모든 예외를 포착 할 수있는 방법? PHP에서, 예외 클래스와 함께 캐치 블록을 사용하여 모든 예외를 잡을 수 있습니다. 이것은 예외 클래스의 인스턴스 또는 서브 클래스 인 예외를 포착합니다. 예는 다음과 같습니다. 예외를 던질 수있는 코드 {
// catch (예외 $ e) { // 모든 예외 처리 }
PHP 예외 처리에서 GetTraceAsString 메소드의 사용은 무엇입니까?
PHP 예외 처리의 getTraceAsString 메소드는 스택 트레이스의 문자열 표현을 얻는 데 사용됩니다. 스택 추적은 예외가 발생했을 때 진행중인 기능 호출 목록입니다. 이것은 예외로 이어지는 함수 호출 순서를 보여주기 때문에 디버깅에 유용 할 수 있습니다.
PHP에서 잡지 않고 예외를 던질 수 있습니까? PHP에서 잡지 않고 예외. 그러나 예외가 발생하고 잡히지 않으면 치명적인 오류가 발생하고 프로그램이 종료됩니다. 따라서 일반적으로 당신이 던지는 모든 예외를 포착하는 것은 일반적으로 PHP에서 전 세계적으로 예외를 처리 할 수있는 방법은 무엇입니까?
PHP에서는 사용자 정의를 설정하여 전 세계적으로 예외를 처리 할 수 있습니다. set_exception_handler 함수의 예외 처리기 기능. 이 기능은 예외가 발생하고 잡히지 않을 때마다 호출됩니다. 예는 다음과 같습니다.
function myExceptionHandler ($ exception) { // 예외 처리
} set_exception_handler ( 'myExceptionHandler'); 위 내용은 빠른 팁 : PHP의 예외를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!