创建我自己的 Java 异常 class

Creating my own Java Exceptions class

我已经创建了自己的例外 class

public class MyException extends Exception{

public MyException(){
    super();
}
public MyException(String s){
    super(s);
}
}


public class Main(){
...
public void setNumber(String number) throws MyException{
    if (containsNumber(number)) {
        throw new MyException(number 
                + " no number!");
    }
}

}


public static void main(String[] args){
    Main x= new Main();
    x.setNumber("028347987H");
}
}

我的代码无法编译。主要方法需要 public static void main(String[] args) throws MyException,我已经在 setNumber(String number) 方法中做了。

which I already did in the setNumber(String number) method

是的,但是您没有调用setNumber()的方法中设置期望值,即main()。编译器告诉您 main() 需要声明它可能会抛出该异常,因为它调用的方法可能会抛出该异常。

您可能想要将 throws MyException 添加到 main(),或者将对 setNumber() 的调用包装在处理 MyExceptiontry/catch 中。由于 Java 使用检查异常,任何给定的方法要么需要处理可能的异常,要么声明它可以抛出它们。