@ 2013-09-20T21:11:49Z <?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 = null;
$code = 0;
self::$previous = null;}
}
// Overrideable
class
MyException extends Exception
public function __construct($message, $code = 0, Exception $previous = null) {
// some code
// make sure everything is assigned properly
parent::__construct($message, $code, $previous);
}
// custom string representation of object
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
public function customFunction() {
echo "A custom function for this type of exception\n";
}
}
class TestException
{
public $var;
const THROW_NONE = 0;
const THROW_CUSTOM = 1;
const THROW_DEFAULT = 2;
function __construct($avalue = self::THROW_NONE) {
switch ($avalue) {
case self::THROW_CUSTOM:
// throw custom exception
throw new MyException('1 is an invalid parameter', 5);
break;
case self::THROW_DEFAULT:
// throw default one.
throw new Exception('2 is not allowed as a parameter', 6);
break;
default:
// No exception, object will be created.
$this->var = $avalue;
break;
}
}
}
// Example 1
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) { // Will be caught
echo "Caught my exception\n", $e;
$e->customFunction();
} catch (Exception $e) { // Skipped
echo "Caught Default Exception\n", $e;
}
// Continue execution
var_dump($o); // Null
echo "\n\n";
// Example 2
try {
$o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) { // Doesn't match this type
echo "Caught my exception\n", $e;
$e->customFunction();
} catch (Exception $e) { // Will be caught
echo "Caught Default Exception\n", $e;
}
// Continue execution
var_dump($o); // Null
echo "\n\n";
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) { // Will be caught
echo "Default Exception caught\n", $e;
}
// Continue execution
var_dump($o); // Null
echo "\n\n";
// Example 4
try {
$o = new TestException();
} catch (Exception $e) { // Skipped, no exception
echo "Default Exception caught\n", $e;
}
// Continue execution
var_dump($o); // TestException
echo "\n\n";
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.20 0.007 0.044 12.40 5.4.19 0.007 0.057 18.83 5.4.18 0.017 0.060 18.79 5.4.17 0.027 0.057 18.68 5.4.16 0.013 0.073 18.75 5.4.15 0.003 0.063 18.95 5.4.14 0.007 0.063 16.63 5.4.13 0.007 0.060 16.38 5.4.12 0.000 0.067 16.39 5.4.11 0.003 0.057 16.60 5.4.10 0.007 0.063 16.57 5.4.9 0.007 0.067 16.39 5.4.8 0.003 0.050 16.60 5.4.7 0.013 0.063 16.66 5.4.6 0.013 0.063 16.39 5.4.5 0.013 0.047 16.39 5.4.4 0.010 0.050 16.52 5.4.3 0.013 0.060 16.59 5.4.2 0.017 0.063 16.32 5.4.1 0.010 0.050 16.46 5.4.0 0.007 0.050 15.78 5.3.27 0.013 0.063 14.44 5.3.26 0.027 0.053 14.69 5.3.25 0.010 0.057 14.70 5.3.24 0.010 0.047 14.82 5.3.23 0.000 0.060 14.57 5.3.22 0.010 0.050 14.47 5.3.21 0.013 0.060 14.64 5.3.20 0.017 0.070 14.66 5.3.19 0.010 0.063 14.75 5.3.18 0.010 0.050 14.65 5.3.17 0.003 0.063 14.65 5.3.16 0.003 0.073 14.63 5.3.15 0.007 0.050 14.73 5.3.14 0.017 0.060 14.62 5.3.13 0.013 0.067 14.65 5.3.12 0.003 0.057 14.46 5.3.11 0.007 0.067 14.63 5.3.10 0.010 0.067 14.12 5.3.9 0.007 0.067 14.11 5.3.8 0.010 0.060 14.10 5.3.7 0.000 0.060 14.20 5.3.6 0.010 0.070 14.07 5.3.5 0.003 0.053 14.11 5.3.4 0.007 0.060 14.13 5.3.3 0.010 0.067 14.00 5.3.2 0.013 0.047 13.71 5.3.1 0.010 0.070 13.71 5.3.0 0.013 0.067 13.63
preferences:dark mode live preview
140.68 ms | 1394 KiB | 7 Q