As I understood, we use Guava Preconditions to fail fast, before changing some objects states (a nice answer here from stackoverflow). And this is good. However it throws Runtime exceptions and this is not the favorite exceptions for the user of an application (500 errors and so on ...). So I need you to give me some help in design.
I have an interface that declares many methods. Each method has arguments which must be controlled (ex: not null). So in the implementation class I use instructions like the following :
Preconditions.checkNotNull(fooObj);
However the program calling this API might crash due to a runtime exception, that is in this case NullPointerException.
So how do you handle these unchecked exceptions?
Thank you.
-------- EDIT The app layers :
Data Access Layer
API declaring the methods that exchange DTO
Process implementing the API and checking arguments using Guava
Webservice depending on the process layer