从良好的设计/实践的角度来看,我们什么时候应该创建和使用自定义 Java 异常类,而不是 Java 中已经预定义的那些?
在某些应用程序中,我看到几乎创建了自定义异常类,它们努力始终使用 native Java 异常。另一方面,有些应用程序为(几乎)所有内容定义了自定义异常。
最佳答案
来自 Best Practices for Exception Handling :
如果它们没有对客户端代码有用的信息,请尽量不要创建新的自定义异常。
以下代码有什么问题?
public class DuplicateUsernameException extends Exception {}
除了指示性异常名称之外,它没有向客户端代码提供任何有用的信息。不要忘记 Java Exception 类与其他类一样,您可以在其中添加您认为客户端代码将调用的方法以获取更多信息。
我们可以在DuplicateUsernameException
中添加有用的方法,例如:
public class DuplicateUsernameException
extends Exception {
public DuplicateUsernameException
(String username){....}
public String requestedUsername(){...}
public String[] availableNames(){...}
}
新版本提供了两个有用的方法:requestedUsername()
,返回请求的名称,availableNames()
,返回一个可用的用户名数组,类似于一个请求。客户端可以使用这些方法来通知请求的用户名不可用并且其他用户名可用。但如果你不打算添加额外的信息,那么只需抛出一个标准异常:
throw new IllegalArgumentException("Username already taken");
关于java - 我们什么时候应该创建自己的 Java 异常类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22698584/