`UserException` is used to classify whether an exception is caused by user's wrong request instead of developer's mistakes. User exceptions are meant to be shown to end users (since they are the trouble makers). However, an application may not necessarily directly use the error messages provided by the exceptions because they may not be very user friendly. For the framework, the best we can do is to translate these messages. Whether to use these messages are determined by developers of individual applications.

I just reviewed all the user exceptions. I don't see big problem with them. Would you review them too?