我有一个关于 java 中的错误处理的查询。假设一个库有几个错误代码。对于各种错误,有一个例外并在其中包含一个错误代码枚举是一种好习惯吗?
更新:在异常中包含错误代码是一种好习惯吗?
我有一个关于 java 中的错误处理的查询。假设一个库有几个错误代码。对于各种错误,有一个例外并在其中包含一个错误代码枚举是一种好习惯吗?
更新:在异常中包含错误代码是一种好习惯吗?
错误和错误代码是两个不同的东西。一个定义发生了什么,另一个确定错误的特定来源。
最好的例子是与数据库相关的异常,其中 SQL 异常包括定义导致它的错误提示的代码。
通过枚举或字段使该代码可访问是一项设计决策。如果你有一个异常要抛出并且你添加一个错误代码,它可以被认为是一个两步异常处理:
一旦确定了源(代码)并且知道了它的上下文(异常),您就可以采取相应的行动。恕我直言,层次结构是一种很好的方法,可以在需要时使用代码进行扩展。请记住,如果您为了表示源而将异常子类化 10 次,则会对可维护性和复杂性产生影响。
并不真地。您应该使用不同的异常类型,一种用于每种错误类型(在合理的范围内,不要创建数百种不同的异常类型!)。
它允许您仅捕获您真正想要捕获的那些,而不是处理每个异常以发现发生了什么。
但是,请随意自定义异常消息,以阐明同一类型的多个异常中的错误来源。
这个简单的解释很清楚。
当前的实践是至少有一个基类 (IOException) 和子类,如 FileNotFoundException、UnsupportedEncodingException。在使用方面,可以使用 IOException 捕获所有内容。
这允许只处理 FileNotFound。
另一方面,如果有许多代码,例如 HTTP 响应代码,那么您只使用一个异常的方法是非常合理的。
如果错误代码太多,并且您不希望用户捕获并恢复,则可以使用一种嵌入整数错误代码的异常类型。如果在编译时无法确定错误代码集,那么您实际上别无选择。