定义一个称为“ NO Match Exception”的异常,当字符串不等于“ India”时抛出该异常

时间:2019-09-09 15:34:03

标签: java exception

在问题中,我必须检查一个字符串是否等于“ India”。如果它们不相等,那么我必须抛出一个异常“ No Match Exception”(无匹配异常)

我正在创建一个类nomatchexception,并从构造函数中传递一个字符串“ America”。然后,我正在检查它是否等于“印度”。如果两者相等,则打印“匹配”,否则使用throw引发异常。

class nomatchexception {    
    String s;

    nomatchexception(String s) {
        this.s = s;

        if (s.equals("India")) {
            System.out.print("Matched!\n");
        } else {
            throw new NoMatchException("Not Matched!\n");
        }
    }
}

class nomatchex {
    public static void main(String[] a) {
        nomatchexception v = new nomatchexception("America");
    }
}

错误:

nomatchex.java:9: error: cannot find symbol
                        throw new NoMatchException("Not Matched!\n");
                                  ^
  symbol:   class NoMatchException
  location: class nomatchexception
1 error

2 个答案:

答案 0 :(得分:0)

您有一个引发异常的 nomatchexception 类,但是 NoMatchException 例外类在您的代码中并不存在,也不属于Java。

需要创建一个类NoMatchException扩展异常,并带有适当的替代,例如:

class NoMatchException extends Exception {
    public NoMatchException(String message){
        super(message);
    }
}

现在您可以引发 NoMatchException 异常。

为了获得良好的编码效果,建议使用正确的大小写,并在类中进行命名,也许您的 nomatchexception 类必须称为 IndiaAssertComparer 或类似名称。

完整示例:

class NoMatchException extends Exception {
    public NoMatchException(String message){
        super(message);
    }
}

class IndiaAssertComparer {

    private String s;

    IndiaAssertComparer(String s) throws NoMatchException {
        this.s = s;

        if (s.equals("India")) {
            System.out.print("Matched!\n");
        } else {
            throw new NoMatchException("Not Matched!\n");
        }
    }
}

class NoMatcher {
    public static void main(String[] a) throws NoMatchException {
        IndiaAssertComparer v = new IndiaAssertComparer("America");
    }
}

答案 1 :(得分:0)

创建一个名为“ NoMatchException”的用户定义异常,该异常在用户输入的字符串不是“印度”时触发。

select max(timestamp) last_timestamp 
from mytable 
where recovery_email = '' and timestamp >= now() - interval 1 day