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
-~----------~----~----~----~------~----~------~--~---

Reply via email to