我创建了自己的异常类
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)方法中做了。
答案 0 :(得分:3)
我已经在setNumber(String number)方法中做了
是的,但是你没有在调用 setNumber()
的方法中设置了期望值,即main()
。编译器告诉你main()
需要声明它可能抛出该异常,因为它调用的方法可能抛出该异常。
您要么将throws MyException
添加到main()
,要么将setNumber()
的电话打包到处理try/catch
的{{1}}。由于Java使用了已检查的异常,因此任何给定的方法都需要处理可能的异常或声明它可以抛出它们。