从良好的设计/实践角度来看,我们什么时候应该创建和使用自定义Java异常类而不是Java中已经预定义的类?
在某些应用程序中,我看到几乎创建了自定义异常类,它们致力于始终使用本机Java异常。另一方面,有些应用程序定义了(几乎)所有事物的自定义异常。
来自异常处理的最佳实践:
如果它们没有客户端代码的有用信息,请尝试不要创建新的自定义异常。
以下代码有什么问题?
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");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句