Skip to content
Advertisement

in which namespace / package to put exceptions?

What is the common or best practice to structure the location of your exception classes?

Let’s say you have the packages/namespaces myproject.person (models and DAOs for persons) and myproject.order (models and DAOs for orders) and the exceptions PersonException and OrderException. Should I put the exceptions in their corresponding packages or in a separate package for exceptions (e.g. myproject.exceptions)?

The first approach seems more reasonable (because it’s sorted by functionality). But there the question arises where you should put exceptions that are related to both? e.g. a ConstraintViolationException

Advertisement

Answer

I would put them in the same namespace as their corresponding classes. For more general exception types you should try to put them in the most specific namespace which covers the classes that use them, so ConstraintViolationException would go in the myproject namespace.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement