当前位置: 首页 > 面试题库 >

抛出RuntimeException的方法应该在方法签名中指出吗?

屠晟睿
2023-03-14
问题内容

例如,框架/ JDK中的许多方法可能会抛出

java.lang.SecurityException

但这未在方法签名中指出(因为这是通常保留给检查异常的做法)。我想证明在方法sigs中声明RuntimeExceptions有很多好处(例如类似于静态类型检查)。我喝醉了还是其他?


问题答案:

我不会在签名中声明未经检查的异常,因为它会误导该API的用户。是否必须显式处理该异常不再明显。

在javadoc中声明它是一种更好的方法,因为它允许某人在认为有必要时对其进行处理,但知道他们可以根据需要忽略它。这使选中和未选中之间的分隔变得清晰。



 类似资料:
  • 问题内容: 阅读的JavaDoc ,我碰到了一个奇怪的方法签名;我一生中从未见过: 乍一看,我想知道通用异常怎么可能发生,因为您不能这样做(here和here)。再三考虑,这开始变得有意义,因为这里只是绑定…,但是供应商本身确切知道泛型之前应该是什么类型。 但是第二行打给我: 是完整的通用异常类型。 然后: 什么世界呢 这 是什么意思? 已绑定在方法签名中。 这将以任何方式解决通用异常限制吗? 为

  • 问题内容: 我正在使用Mockito。我想在调用未存根方法时抛出一个。 有什么办法吗? 问题答案: 您可以为模拟设置默认答案。所有未存根的方法都将使用此默认答案。 请注意,您 不能 使用此功能,因为该方法是在方法调用之前(嘲笑when()调用如何工作的?),并且它将在模拟进入存根模式之前抛出a 。 因此,您必须使用它来工作。

  • 问题内容: 该方法中类抛出2 :和,但在我的书上面的代码捕获和。 为什么代码会捕获但没有捕获? 如果在线文档的Formatter类format()方法中甚至没有声明它,我们如何知道是否需要捕获? 问题答案: 文献:是一个 可以由不同类的在Java中像迭代器,枚举,被抛出 扫描仪 或StringTokenizer的。 在你的情况是。它不是从方法。 这 仅仅是在安全方面(如果不给下一个输入,然后抛出此

  • 问题内容: 以下哪一项正确?我希望编译器告诉我使用或 为什么我认为它不正确-> Bcoz NPE是RTE,但RTE不是NPE 这如何正确?我希望编译器告诉我使用or 或 回答: 对于RTE,即使您不向方法添加子句,编译器也不会说什么 但是,当我们明确地说“ ”时,为什么编译器会忽略它?与’ ;’ 相同 它不会在运行时抛出,例如某些对象被评估为null,并对该null对象调用了操作。通常,一个函数必

  • 问题内容: 我正在尝试使用Java,并想通过Java的客户端/服务器进行测试,以使客户端将自定义类(消息)的简单对象发送到服务器。问题是我一直在服务器端收到ClassNotFoundException。 我认为其余代码似乎还不错,因为其他对象(例如String)可以顺利通过。 我在不同的位置分别有两个不同的netbeans项目,分别用于客户端和服务器。 他们每个人在各自的程序包下都有自己的Mess

  • 问题内容: 我有这样的方法: 我想抛出一个内。编译器不允许我这样做,因为不允许将我的方法扔在那里。但是我需要抛出一个的子类来进行测试 (我不能抛出Unchecked)。显然这是一个hack,但我需要进行测试。我尝试过EasyMock,但它也不允许我这样做。任何想法如何做到这一点? 谢谢,肖恩·阮 问题答案: 方法1: Alexey Ragozin的这篇文章介绍了如何使用泛型技巧引发未声明的检查异常