在一个测试用例中,我有线
ZahlPasstNicht zahlPasstNicht = new ZahlPasstNicht(min, max, ist);
第二部分用红色下划线表示:未处理的异常:ZahlPasstNicht
我可以使用try / catch或让构造函数抛出错误,我试图做后者:
public class ZahlPasstNicht extends IndexOutOfBoundsException {
int a;
int b;
int c;
public ZahlPasstNicht(int a, int b, int c) throws ZahlPasstNicht {
this.a = a;
this.b = b;
this.c = c;
}
我究竟做错了什么?
最佳答案
提供的代码没有错。从技术上讲,这是正确的,但在逻辑上是不正确的。您可以看到它运行正常。You can see working code here。
注意:由于在ideone
中,只允许我在一个文件中进行编码,因此ZahlPasstNicht
类在此处未公开。
代码在逻辑上是不正确的,因为:
声明构造函数ZahlPasstNicht
引发ZahlPasstNicht
,但是在ZahlPasstNicht
的构造函数中没有代码引发类型ZahlPasstNicht
的异常。
另外,如果在构造函数ZahlPasstNicht
中抛出类型为ZahlPasstNicht
的异常,则它将陷入无限循环。
该问题似乎在代码的任何其他部分中。确保构造函数ZahlPasstNicht
的参数兼容,即变量min
,max
和ist
的类型为int
。