在一个测试用例中,我有线

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的参数兼容,即变量minmaxist的类型为int

07-26 09:27