java throw 用法

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:13:06
class ThreadDemo{
static void a(int c){
try {
throw new Exception();
}catch(Exception e)
{
System.out.println("static ThreadDemo class :"+e);
throw e; //ERROR
}

}

}

请问为什么throw e这边会报编译错误!即使改为throw new Exception();也会报错?Unhandled exception type Exception,错误,理解不来这句话的意思。。。
把throw e;改为throw new ArithmeticException();可以编译通过,我的整个代码如下:
class ThreadDemo{
static void a(){
try {
throw new Exception();
}catch(Exception e)
{
System.out.println("static ThreadDemo class :"+e);
throw new ArithmeticException();
//throw e;
}

}

}

class First{
public static void main(String args[]){
try{
ThreadDemo.a();
}catch(Exception e){
System.out.println("main Thread:"+e);
}

}

}

汗!!!!!

你在后面又throw了一个exception,但是你没有相关的处理该exception的代码,它当然会报错了,或者你可以在a方法后面将exception继续向外throw,否则就要在该函数内部处理掉

你这个程序是什么意思,throw是你的程序发生了异常,而你自己不想做处理,再用throw把它抛出去.你这边是想干什么?

补充:你这个程序有什么意义?try语句块里放的是可能发生异常的语句,你throw new Eeception干吗?还有方法里的参数传了有什么用?

程序是你改过的吧,ArithmeticException()是数据运算错误时抛出的异常,以前try里面肯定是数据运算吧,那样的话就没错了.