* Thus wrote Matthew Weier O'Phinney:
>
> The problem I'm running into: what do I pass as arguments to catch()?
> The articles on ZE2 use something like: catch (Exception $e) {}, or
> something like catch(MyException $e) (where MyException is a class they
> defined in their examples). Is the 'Exception' class a base
> class/handler with PHP5? Do I need to create my own exception handler
> classes? Do I even need to catch objects of a specific type, or can I
> simply do:
> catch ($error) {
> do something with $error
> }
At minimum you should always at least catch the Exception class:
catch (Exception $e) { }
If the class instance your calling throws a custom exception
definition you can attempt to catch that before the standard
Exception class:
<?php
class MyException extends Exception {
/* Redefine the exception so message isn't optional */
public function __construct($message, $code = 0) {
// custom stuff you want to do..
// ...
parent::__construct($message, $code);
}
/* 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 foo {
function myException() {
throw new MyException('Exception thrown');
}
function standardException() {
throw new Exception();
}
}
$f = new foo();
try {
$f->myException();
}
catch (MyException $e) {
echo "Caught my exception\n", $e;
$e->customFunction();
}
catch (Exception $e) {
echo "Default Exception caught\n", $e;
}
try {
$f->standardException();
}
catch (MyException $e) {
echo "Caught my exception\n", $e;
$e->customFunction();
}
catch (Exception $e) {
echo "Default Exception caught\n", $e;
}
HTH,
Curt
--
First, let me assure you that this is not one of those shady pyramid schemes
you've been hearing about. No, sir. Our model is the trapezoid!
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php