Java中的异常和错误代码

时间:2013-03-06 16:16:39

标签: java

我有一个关于java中的错误处理的查询。假设库有几个错误代码。有一个例外并且包含一个错误代码的枚举,对于各种错误,这是一个好习惯吗?

更新:在异常中包含错误代码是一种好习惯吗?

4 个答案:

答案 0 :(得分:4)

错误错误代码是两个独立的事情。一个定义了发生的事情,另一个定义了错误的特定来源。

最好的例子是与数据库相关的异常,其中SQL异常包含一个代码,用于定义导致它的错误的条带。

通过枚举或字段使代码可访问是一项设计决策。如果您有一个异常要抛出并向其添加错误代码,则可以将其视为两步异常处理:

  1. 捕获确定错误上下文的异常
    • 安全
    • 数据库
    • 处理
    • 解析
    • 无效操作
  2. 检查异常代码以确定来源
    • 用户没有足够的权限去做他想做的事情
    • 数据库连接错误
    • 查询相关问题
    • 系统目前已超载
    • 没有经理找到某项操作
  3. 确定源(代码)并了解其上下文(异常)后,您可以采取相应措施。恕我直言,层次结构是一种很好的方法,可以在需要时使用代码进行扩展。请记住,如果您将异常子类化10次以表示源代码,那么可维护性和复杂性会受到影响。

答案 1 :(得分:3)

不是真的。您应该使用不同的异常类型,每种错误类型一个(在合理的限制内,不要创建数百种不同的异常类型!)。

它允许您只捕获您真正想要捕获的那些,而不是处理每个异常以发现发生的事情。

但是,可以随意自定义异常消息,以澄清同一类型的几个异常中的错误来源。

simple explanation很清楚。

答案 2 :(得分:2)

当前的praxis至少有一个基类(IOException)和子类,如FileNotFoundException,UnsupportedEncodingException。在使用方面,然后可以使用IOException捕获所有内容。

这样就可以解决FileNotFound。

另一方面,有许多代码,比如HTTP响应代码,你只有一个例外的方法是不合理的。

答案 3 :(得分:2)

如果错误代码太多,并且您不希望用户捕获并恢复,则可以使用一个嵌入整数错误代码的异常类型。如果在编译时无法确定错误代码集,那么您实际上没有选择。