我有一个关于java中的错误处理的查询。假设库有几个错误代码。有一个例外并且包含一个错误代码的枚举,对于各种错误,这是一个好习惯吗?
更新:在异常中包含错误代码是一种好习惯吗?
答案 0 :(得分:4)
错误和错误代码是两个独立的事情。一个定义了发生的事情,另一个定义了错误的特定来源。
最好的例子是与数据库相关的异常,其中SQL异常包含一个代码,用于定义导致它的错误的条带。
通过枚举或字段使代码可访问是一项设计决策。如果您有一个异常要抛出并向其添加错误代码,则可以将其视为两步异常处理:
确定源(代码)并了解其上下文(异常)后,您可以采取相应措施。恕我直言,层次结构是一种很好的方法,可以在需要时使用代码进行扩展。请记住,如果您将异常子类化10次以表示源代码,那么可维护性和复杂性会受到影响。
答案 1 :(得分:3)
不是真的。您应该使用不同的异常类型,每种错误类型一个(在合理的限制内,不要创建数百种不同的异常类型!)。
它允许您只捕获您真正想要捕获的那些,而不是处理每个异常以发现发生的事情。
但是,可以随意自定义异常消息,以澄清同一类型的几个异常中的错误来源。
这simple explanation很清楚。
答案 2 :(得分:2)
当前的praxis至少有一个基类(IOException)和子类,如FileNotFoundException,UnsupportedEncodingException。在使用方面,然后可以使用IOException捕获所有内容。
这样就可以解决FileNotFound。
另一方面,有许多代码,比如HTTP响应代码,你只有一个例外的方法是不合理的。
答案 3 :(得分:2)
如果错误代码太多,并且您不希望用户捕获并恢复,则可以使用一个嵌入整数错误代码的异常类型。如果在编译时无法确定错误代码集,那么您实际上没有选择。