【问题标题】:Checked exceptions in java [duplicate]java中的检查异常[重复]
【发布时间】:2009-07-16 15:28:18
【问题描述】:

可能重复:
The case against checked exceptions

编辑:看来我没有正确表达我的问题,我可以理解这种挫败感。

我正在寻找一些信息来解释我应该在哪里使用受检异常以及在哪里不应该使用它。关于这个主题的大部分信息都是单方面的——爱/恨关系。我认为人们会假设一个比另一个差,或者开发人员总是在这方面做得不好。

编辑 2:好的,我做了一些谷歌搜索(我希望在发布之前我已经这样做了),并找到了一些平衡的答案。我将它们包括在内,因此它可以帮助任何寻找答案的人,而不是另一场辩论(如上面提到的重复帖子)

http://www.ibm.com/developerworks/java/library/j-jtp05254.html

Rod 在他的《没有 EJB 的 J2EE 设计》一书中似乎对这个主题进行了平衡的讨论:

http://www.theserverside.com/tt/articles/article.tss?l=RodJohnsonInterview

如果您在域对象上使用验证,那么使用检查异常似乎也不是一个坏主意。无论如何,如果您阅读了上面的材料,您可能会确信不使用受检异常或尽量减少使用它的机会。

Rich,提供了一个很好的链接。谢谢,里奇!

http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html

更多:

http://www.oracle.com/technology/pub/articles/dev2arch/2006/11/effective-exceptions2.html

http://www.joelonsoftware.com/items/2003/10/13.html

【问题讨论】:

  • 请减少您的问题的主观性和争论性。
  • 这既是重复的,也是主观的和争论的。
  • 这不是一个讨论网站。你真的想确信受检异常是不好的吗?
  • 有关何时使用已检查和未检查异常的讨论,请参阅onjava.com/pub/a/onjava/2003/11/19/exceptions.html。尽管现代趋势是尽可能避免检查异常
  • 这看起来不像是重复的。他说,鉴于我用 Java 编程,它确实有检查异常,我应该在哪里使用它们。这与“为什么检查异常是个坏主意”不同。

标签: java exception-handling


【解决方案1】:

Shaw,尝试在实现迭代器的代码中检查异常。

结案:-D

【讨论】:

  • 那将是非常愚蠢的事情。我会使用 hasNext()。
  • 问题是您不能通过 Iterator 接口抛出检查异常,因为它没有声明任何异常。因此,必须取消检查那里发生的任何异常。看到了吗?
  • 大多数 JDBC 方法都会抛出一个检查异常,尽管这不是一个好主意。关键是在某些情况下,检查异常是有意义的。
  • 我试图指出的问题是,如果你在 hasNext() 调用代码中抛出一个检查异常并且使用迭代器的代码应该知道它应该怎么做。你不能直接这样做,因为 hasNext() 不会抛出任何已检查的异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多