jimfog Posted March 4, 2013 Share Posted March 4, 2013 I have a form where if an input does not satisfy validation checks an error message is displayed-here is an example for the password: $checkpass = check_passwd($_POST['password']); if ($checkpass== false) { $errors.= 'The password must be at least 6 characters long'; $errorclass['passwsmall'] = true; } The question is if for cases like the above is better using the exception class or just use the above. In another function that insert the user's credentials into the db(after the checks are done, as part of the registration)-I check if the e-mail in the db is the same with one the new user has supplied, and if this is the case then throw an exception: $result = $conn->query("select * from credentials where email='" . $email . "'"); if (!$result) { throw new Exception('problrm.....'); return false; } if($result->num_rows>0) { throw new Exception('There is another user with same e-mail.'); return false; SO I have to make a decision for the error mechanism. What do you propose?The reason that I use an exception in the registration is because the above code is not mine-it is copied from a book. The convenience with the first method(in my case) is that error variable is echo straight to the form indicating which input requires attention. Link to comment Share on other sites More sharing options...
birbal Posted March 4, 2013 Share Posted March 4, 2013 Exception wont stack up error messages if Errors are in same level. Exception is good for error handling as you can catch anywhere in call stack to handle error. But if you want to show stacked error Exception would not be good. like if you have registration page and you want to show user same time about invalid nick and invalid password same time using exception for both case it would not show two errors if you throw two of those errors from same call stack(method call,function call). as soon it encounters exception it will stop executing and keep on going upward of call stack until it finds a suitable exception handling catch block. The other exception is not even thrown, rest of the code will not be executed. So in those case you could collect the errors and make up a combined error to get thrown by an exception. 'Exception' is generic you would want to extend it to any specific exception to identify them, eg, 'UserGeneratedException'. Exception is best suitable for handling unexpected error. You would usually use exception to handle the unexpected occurance rather than just for error displaying directly. Link to comment Share on other sites More sharing options...
jimfog Posted March 6, 2013 Author Share Posted March 6, 2013 So you are suggesting(in other words) that I use the first case of error display-not use exception. Link to comment Share on other sites More sharing options...
jimfog Posted March 7, 2013 Author Share Posted March 7, 2013 can you give me an example where exception could be used-errors occurring unexpected. Link to comment Share on other sites More sharing options...
thescientist Posted March 7, 2013 Share Posted March 7, 2013 (edited) connecting to a database or 3rd party API, or uploading/moving files on the server. Edited March 7, 2013 by thescientist Link to comment Share on other sites More sharing options...
Ingolme Posted March 7, 2013 Share Posted March 7, 2013 I'd use exceptions if I'm programming a library that somebody else is going to use. When the programmer catches the exceptions they can choose how to respond to them. Link to comment Share on other sites More sharing options...
jimfog Posted March 7, 2013 Author Share Posted March 7, 2013 I'd use exceptions if I'm programming a library that somebody else is going to use. When the programmer catches the exceptions they can choose how to respond to them.So...in this case-as far as I understand from your answer-where a check is made if there is a similar username in the db with the one that the user submitted in the form, I SHOULD not use exception, but just print an error message. Am i correct? Link to comment Share on other sites More sharing options...
thescientist Posted March 7, 2013 Share Posted March 7, 2013 yes, that isn't an exceptional case, since that's not an unusual thing to happen. Link to comment Share on other sites More sharing options...
jimfog Posted March 7, 2013 Author Share Posted March 7, 2013 The issue though....is that this same check requires also a connection to the database-an occasion requiring exception. so I think that I have to use both, but maybe I should HIDE the exception warning from the end user. Link to comment Share on other sites More sharing options...
jimfog Posted September 30, 2013 Author Share Posted September 30, 2013 connecting to a database.... Does that include also the execution of queries? Meaning to throw an exception when a query is unsuccessful? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now