My program throws checked exceptions, like the RecordNotFoundException, and runtime exceptions (IllegalArgumentException, DBException,...) from the Data class.
The checked exceptions are caught in my business service and there a (checked) business exception is throw. In my GUI I catch these checked exception and show an appropriate error message for the user (e.g. "room could not be found")
The runtime exceptions are not caught, because they indicate a developer's mistake (passing a null parameter to a method), not a user one. So that would be a bug in the program and should be not present anymore after
testing the application.