Let's say you are writing a Java-program, and now is the time to throw an exception. Of what type should it be? Does the broad Exception class suit our needs, or it's better to use a problem-specific exception? If the latter is the case, should we write our own exception or take one from the standard Java-library?