PHP 8.5.0 RC 1 available for testing

Voting

: min(nine, nine)?
(Example: nine)

The Note You're Voting On

Dor
13 years ago
It's important to note that subclasses of the Exception class will be caught by the default Exception handler

<?php

/**
* NewException
* Extends the Exception class so that the $message parameter is now mendatory.
*
*/
class NewException extends Exception {
//$message is now not optional, just for the extension.
public function __construct($message, $code = 0, Exception $previous = null) {
parent::__construct($message, $code, $previous);
}
}

/**
* TestException
* Tests and throws Exceptions.
*/
class TestException {
const
NONE = 0;
const
NORMAL = 1;
const
CUSTOM = 2;
public function
__construct($type = self::NONE) {
switch (
$type) {
case
1:
throw new
Exception('Normal Exception');
break;
case
2:
throw new
NewException('Custom Exception');
break;
default:
return
0; //No exception is thrown.
}
}
}

try {
$t = new TestException(TestException::CUSTOM);
}
catch (
Exception $e) {
print_r($e); //Exception Caught
}

?>

Note that if an Exception is caught once, it won't be caught again (even for a more specific handler).

<< Back to user notes page

To Top