<?php
ini_set('log_errors','off');
// log_errors_max_len = infinite length
ini_set("log_errors_max_len",0);
function long_exception_handler($exception) {
// for compatibility, call __toString
echo $exception->__toString();
}
set_exception_handler('long_exception_handler');
/**
* 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
}
?>
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in /in/IgW01 on line 23
Process exited with code 255.
Output for 5.1.0 - 5.1.1
Fatal error: Wrong parameter count for exception([string $exception [, long $code ]]) in /in/IgW01 on line 23
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Fatal error: Argument 3 must not be null in /in/IgW01 on line 22
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/IgW01 on line 22
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/IgW01 on line 22
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/IgW01 on line 22
Process exited with code 255.