Try - 使用异常的函数应该位于 “try” 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Throw - 这里规定如何触发异常。每一个 “throw” 必须对应至少一个 “catch”
Catch - “catch” 代码块会捕获异常,并创建一个包含异常信息的对象
class customException extends Exception {
public function errorMessage() {
$errorMsg = $this->getMessage() . ' is not a valid E-Mail address.';
return $errorMsg;
}
}
$email = "someone@example.com";
try {
try {
//check for “example” in mail address
if (strpos($email, "example") !== FALSE) {
//throw exception if email is not valid throw new
throw new Exception($email);
}
} catch (Exception $e) {
//re-throw exception throw new
throw new customException($email);
}
} catch (customException $e) {
//display custom message
echo $e->errorMessage();
}
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” (未捕获异常)的错误消息。
function myException($exception) {
echo "Exception:" . $exception->getMessage();
}
set_exception_handler('myException');
throw new Exception('Uncaught Exception occurred');