我们什么时候应该创建自己的Java异常类?

佩德罗

从良好的设计/实践角度来看,我们什么时候应该创建和使用自定义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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们什么时候需要创建自己的自定义依赖项属性?

来自分类Dev

我们什么时候应该使用预取?

来自分类Dev

我们什么时候应该使用@Component在春天?

来自分类Dev

我们什么时候应该实现__deepcopy__?

来自分类Dev

我们什么时候应该使用ListCollectionView?

来自分类Dev

我们什么时候应该使用引号?

来自分类Dev

我们什么时候应该将代码封装为“类”?

来自分类Dev

我们什么时候应该使用Java中抛出关键字?

来自分类Dev

我们什么时候需要数据类?

来自分类Dev

我们什么时候应该使用@PreAuthorize和@Secured

来自分类常见问题

我们什么时候应该调用multiprocessing.Pool.join?

来自分类Dev

Jackson- JsonSerializable-我们什么时候应该实现serializeWithType方法

来自分类Dev

什么时候我们应该使用带括号和不带括号的sizeof

来自分类Dev

React native我们什么时候应该重新获取数据?

来自分类Dev

什么时候我们应该在.exs文件中使用defmodule

来自分类Dev

什么时候我们应该在Rust中使用包装与期望

来自分类Dev

我们什么时候应该在React Native中使用`accessibilityRole`?

来自分类Dev

我们什么时候应该手动配置广播地址?

来自分类Dev

我们什么时候应该在 CodeIgniter 中使用核心?

来自分类Dev

我们什么时候应该使用链表而不是数组,反之亦然?

来自分类Dev

我们什么时候应该使用 OnCompleteListener() 进行查询

来自分类Dev

我们什么时候使用Element?我们什么时候使用Helper?我们什么时候使用View Cells?在CakePHP 3中

来自分类Dev

我什么时候创建服务类

来自分类Dev

我们什么时候需要NDK for OpenCV Android

来自分类Dev

我们什么时候需要非捕获组?

来自分类Dev

SPARQL我们什么时候使用“ a”

来自分类Dev

我们什么时候使用launch(SupervisorJob())?

来自分类Dev

我们什么时候在 Haskell 中使用 newtype?

来自分类Dev

我们什么时候应该使用soft-O,soft-Omega,soft-Theta

Related 相关文章

  1. 1

    我们什么时候需要创建自己的自定义依赖项属性?

  2. 2

    我们什么时候应该使用预取?

  3. 3

    我们什么时候应该使用@Component在春天?

  4. 4

    我们什么时候应该实现__deepcopy__?

  5. 5

    我们什么时候应该使用ListCollectionView?

  6. 6

    我们什么时候应该使用引号?

  7. 7

    我们什么时候应该将代码封装为“类”?

  8. 8

    我们什么时候应该使用Java中抛出关键字?

  9. 9

    我们什么时候需要数据类?

  10. 10

    我们什么时候应该使用@PreAuthorize和@Secured

  11. 11

    我们什么时候应该调用multiprocessing.Pool.join?

  12. 12

    Jackson- JsonSerializable-我们什么时候应该实现serializeWithType方法

  13. 13

    什么时候我们应该使用带括号和不带括号的sizeof

  14. 14

    React native我们什么时候应该重新获取数据?

  15. 15

    什么时候我们应该在.exs文件中使用defmodule

  16. 16

    什么时候我们应该在Rust中使用包装与期望

  17. 17

    我们什么时候应该在React Native中使用`accessibilityRole`?

  18. 18

    我们什么时候应该手动配置广播地址?

  19. 19

    我们什么时候应该在 CodeIgniter 中使用核心?

  20. 20

    我们什么时候应该使用链表而不是数组,反之亦然?

  21. 21

    我们什么时候应该使用 OnCompleteListener() 进行查询

  22. 22

    我们什么时候使用Element?我们什么时候使用Helper?我们什么时候使用View Cells?在CakePHP 3中

  23. 23

    我什么时候创建服务类

  24. 24

    我们什么时候需要NDK for OpenCV Android

  25. 25

    我们什么时候需要非捕获组?

  26. 26

    SPARQL我们什么时候使用“ a”

  27. 27

    我们什么时候使用launch(SupervisorJob())?

  28. 28

    我们什么时候在 Haskell 中使用 newtype?

  29. 29

    我们什么时候应该使用soft-O,soft-Omega,soft-Theta

热门标签

归档