Hey Steve, as a general rule, any exception (even a normal php exception) that you throw from within your code will ultimately be caught by symfony and displays either an error 500 or a stacktrace (in dev mode), UNLESS you catch the exception within your own code first.
Creating your own exception classes is a good idea, because it enables you to throw and catch exceptions without interfering with the exceptions that symfony throws for itself. For example, if you wrap a call to one of your own classes into a try/ catch block, and your catch statement is looking for an sfException, you could intercept all sorts of symfony exceptions (database, configuration, etc) without really being in the right place to handle those, since they're supposed to be handled on a higher level (logged, displayed, forwarded to 500, etc). So, you don't want to deal with those exeptions, and therefore you create your own (doesn't matter if based on sfException, although it saves the framework the extra step of converting your exception to a symfony exception). I usually have at least one exception for each functional area of my application. Say you have a "package" of classes that manage an external email list via service, that package for me would contain an "EmailApiException".. For apps with an ecommerce store I also include a more powerful "StoreException" which takes down the store and displays a nice "Sorry, come back later" message.. If, say, my shipping integration code throws a ShippingApiException, the controller code can then decide if it wants to throw the StoreException.. so, having some granularity there is important to delegate the decision-making from specific areas to more general areas of code. Hope that all made sense, Daniel On Apr 29, 6:39 am, Steve the Canuck <steve.san...@gmail.com> wrote: > I haven't been able to find out much from the documentation regarding > how to throw exceptions in my code and how Symfony will deal with > them. I'm not talking about 404 errors and stuff, I know how to > handle those. But I have some cases where I encounter exception > conditions in my business logic (within the OM) and I need to throw an > exception. > > My questions are: > > - should I create my own exception classes for my application, and > should they be extending sfException? > - how will symfony handle application exceptions? > > Thanks, > Steve --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---