kevingarnett2000 Posted July 9, 2007 Share Posted July 9, 2007 I have been researching through ways to efficiently handle php exceptions like database connection lost, web service not available etc. I have came up with some ways to handle error in application: 1) A global exception class class GlobalException extends Exception { public $mErrors; // instance of GlobalErrors function __construct(GlobalErrors $errors) { $this->mErrors = $errors; } } class GlobalErrors { public $mErrors; public function Push($errcode, $errmsg) { $err['ErrorCode'] = $errcode; $err['ErrorMsg'] = $errmsg; } } // for instance when I validating a form, I would use a function to validate and create a new GlobalErrors and push all error code like "EMPTY_FNAME" or "PASSWORD_CONFIRM_INCORRECT". And at the form itself, I would print out appropriate error message out for each error. eg: function Validate($pw, $confirm) { $errors = new GlobalErrors(); if($pw !== $confirm) { $errors->Push("PASSWORD_CONFIRM_INCORRECT", ""); } if(count($errors->mErrors) > 0) { throw new GlobalException($errors); } } Another approach is: 2) Return error message from routine function dbQuery($sql) { ... ... ... //assume there is error return $errCode; } //on the calling function $return = dbQuery("SELECT ..."); if(is_integer($return)) { //return another error code } These are two on my approaches I used when handling errors for large PHP projects. I really appreciate the first method I used as I inherited the coding method from my Java programming. However, for some straightforward cases of error handling, the first one often add extra codes. As for second one, it is simple but it can produce complex code if procedures gets complicated. Anyone out there, mind to share with me the ways of you people handling exceptions in sophisticated PHP projects? Thank you, Kevin Quote Link to comment Share on other sites More sharing options...
keeB Posted July 11, 2007 Share Posted July 11, 2007 Exceptions are a bit more robust because you can encapsulate what to do with them inside your functions/objects, instead of in your main code. It all depends on personal preference. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.