我和几个朋友之间进行了辩论。他们更喜欢一般性例外,例如作为例外的字段ClientErrorException
并ServerErrorException
有详细信息,而我更喜欢使事情更具体。例如,我可能有一些例外,例如:
BadRequestException
AuthenticationFailureException
ProductNotFoundException
这些都是基于API返回的错误代码构建的。
遵循异常的优点,这对于Java来说似乎是惯用的。但是,我朋友的意见并不少见。
就代码可读性和API可用性而言,是否存在首选方法,或者它真的只是偏爱首选项?
abstract
使用getter方法定义和泛化异常类,然后使细粒度类扩展通用类。例如AuthenticationFaliureException extends ClientErrorException
。这样,每个用户都可以选择他们希望如何处理异常。显然,它还需要更多工作。但是,在编写应用程序(而不是库)时,恕我直言是另一种情况。在这种情况下,为简单起见,我不会使异常超出您的需要。