public class TestException {
public static void main(String[] ags) {
run();
}
public static Exceptions run(){
Exceptions eps = new Exceptions();
try{
int a = eps.exception(3);
System.out.println("a= "+a);
}
catch(MyException me){
System.out.println(me.getMessage());
}
return eps;
}
}class Exceptions {
public int exception(int a) throws MyException{
if(a<2){
throw new MyException("test exception");
}
return a ;
}
}class MyException extends Exception { public MyException(String message) {
super(message);
}}在方法public int exception(int a) throws MyException中会产生异常,这个方法的返回值类型为int
我的问题是在发生异常时抛出了一个MyException类型的异常对象,此时这个方法有返回值吗?如果有返回的是什么?
抛出的异常能看作是返回值吗?

解决方案 »

  1.   

    有啊,打印的所有异常字符串也就是你所返回的内容,要想输出你想要的返回值,就需要在你的异常类中重写toString方法
      

  2.   

    public int exception(int a) throws MyException {
    if (a < 2) {
    throw new MyException("test exception");
    }
    return a;
    }
    你这个方法是放 a<2的时候才抛出异常.
    抛出的异常实际不能看作是返回值,抛出的异常MyException只能给捕捉或向上抛,不然程序出错,但是运行的情况和正常的就不一样了