- print_r: documentation ( source)
<?php
class Exception
{
protected $message = 'Unknown exception'; // exception message
private $string; // __toString cache
protected $code = 0; // user defined exception code
protected $file; // source filename of exception
protected $line; // source line of exception
private $trace; // backtrace
private $previous; // previous exception if nested exception
public function __construct($message, $code = 0, Exception $previous = null) {
// some code
// make sure everything is assigned properly
parent::__construct($message, $code, $previous);
}
}
// Inhibits cloning of exceptions.
/**
* 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
}
?>