One or more general exception are needed to organise exception handling in the application. '''Option 1:''' GeoNetworkException extends java.lang.RuntimeException This is a non checked exception. * Advantage: less boilerplate code * Disadvantages: requires well tested code '''Option 2:''' GeoNetworkException extends java.lang.Exception This is a checked exception. Users of api's who can throw this exception need code to catch the exception. * Advantage: it is explicit which exceptions can be thrown * Disadvantages: code gets dirty with try catches '''Chosen option 1''': The application is well unit tested. It is important that the code remains clean. For now only one exception is implemented (org.geonetwork.domain.ebxml.exception.GeoNetworkException). We can add and diversify more of course.