throws关键字
定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。
throws关键字格式:
public class ThrowsDemo01 {
public static void main(String args[]){
Math m = new Math() ; // 实例化Math类对象
try{
System.out.println("除法操作:" + m.div(10,2)) ;
}catch(Exception e){
e.printStackTrace() ; // 打印异常
}
}
}
class Math{
public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理
int temp = i / j ; // 计算,但是此处有可能出现异常
return temp ;
}
};
因为div使用了throws关键字声明,所以调用此方法的时候,方法必须进行异常处理。通过try...catch;
如果在主方法的声明也使用了throws关键字呢,那么是不是意味着主方法也可以不处理异常。
public class ThrowsDemo01 {
public static void main(String args[]) throws Exception{
Math m = new Math() ; // 实例化Math类对象
System.out.println("除法操作:" + m.div(10,0)) ;
System.out.println("我还可以输出");
}
}
class Math{
public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理
int temp = i / j ; // 计算,但是此处有可能出现异常
return temp ;
}
};
在本程序中,主方法不处理任何异常,而交给JAVA中最大头JVM,所以如果在主方法使用了throws关键字,则表示一切异常交给JVM进行处理。
throw关键字
throw关键字作用是抛出一个异常,抛出的时候是一个异常类的实例化对象,
在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。
public class ThisDemo06{
public static void main(String args[]){
try{
throw new Exception("自己抛着玩的。") ; // 抛出异常的实例化对象
}catch(Exception e){
System.out.println(e) ;
}
}
};