PHP 5에는 다른 언어와 유사한 예외 처리 모듈이 추가되었습니다. PHP 코드에서 생성된 예외는 throw 문에 의해 발생되고 catch 문에 의해 포착될 수 있습니다. (참고: 먼저 던져야 얻을 수 있습니다)예외 처리가 필요한 코드는 가능한 예외를 포착하기 위해 try 코드 블록에 배치되어야 합니다. 모든 시도에는 해당 캐치가 하나 이상 있어야 합니다.
다양한 캐치를 사용하여 다양한 클래스에서 생성된 예외를 포착하세요.
try 코드 블록이 더 이상 예외를 발생시키지 않거나 발생한 예외와 일치하는 catch를 찾을 수 없으면 PHP 코드는 마지막 catch로 점프한 후 계속 실행됩니다.
물론, PHP에서는 catch 블록 내에서 예외가 다시 발생하는 것을 허용합니다.
예외가 발생하면 후속 코드(번역자 주: 예외가 발생한 코드 블록을 나타냄)는 계속 실행되지 않으며 PHP는 첫 번째로 일치하는 catch를 찾으려고 시도합니다.
먼저 PHP에 내장된 예외 클래스의 기본 속성과 메서드를 살펴보겠습니다. (특정 구현 제외)
<?php /** * Exception.php * * PHP5内置的异常类的属性与方法 * 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。 */ class Exception{ protected $message = 'Unknown exception'; // 异常信息 protected $code = 0; // 用户自定义异常代码 protected $file; // 发生异常的文件名 protected $line; // 发生异常的代码行号 function __construct($message = null, $code = 0); final function getMessage(); // 返回异常信息 final function getCode(); // 返回异常代码(代号) final function getFile(); // 返回发生异常的文件名 final function getLine(); // 返回发生异常的代码行号 final function getTrace(); // backtrace() 数组 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 //可重载的方法 function __toString(); // 可输出的字符串 } ?>예는 다음과 같습니다:
파일 오류 포함 및 예외 발생
<?php // 错误的演示 try { require ('test_try_catch.php'); } catch (Exception $e) { echo $e->getMessage(); } // 正确的抛出异常 try { if (file_exists('test_try_catch.php')) { require ('test_try_catch.php'); } else { throw new Exception('file is not exists'); } } catch (Exception $e) { echo $e->getMessage(); }
위 내용은 PHP 마스터 고급 시도 캐치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!