------- android培训、java培训、期待与您交流! ----------
一、认识java中的异常处理机制是从被除数是0开始的。在Java中,被除数是零意味着解是无穷大,会迅速把内存占满 。
(1)java中用try...catch来处理异常。
当语句可能出现问题,一般都把语句放到try语句中。如果产生异常,程序会自动跳到catch语句中找到匹配的异常类型进行相应的处理。
其中,final关键字可以认为是异常处理的统一出口。
(2)异常类中,有两个最常用的的类,分别为Exception和Error;这两个类全是Throw的子类。
算术异常和数字格式异常都属于Exception的子类。当输出异常信息时,可以用Exception类中的方法输出异常,代码是
e.printStackTrace()
二、hrows和throw关键字
(1)throws关键字格式: public 返回值类型 方法名称(参数列表...) throw 异常类{ }
例如:
class Math{
public int div(int i,int j) throws Exception{ //方法可以不处理异常
int temp=i/j;
return temp;
}
}
public class ThrowsDemo
{
public static void main(String[] args)
{
Math m=new Math();
try{
System.out.println("除法操作:"+m.div(10,2)); //可以看出,在主方法中添加了try...catch,异常交由主程序处理
}catch(Exception e)
{e.printStacktrace();
}
}
}
(2)throw关键字
直接抛出异常实例化对象。
class Math{
public int div(int i,int j) throws Exception{ //方法可以不处理异常
int temp=0;
try{
temp=i/j; //如果产生异常,教给catch
}catch(Exception e){ //捕获异常
throw e;
}finally{
System.out.println("****** div over******")
}
return temp;
}
}
public class ThrowsDemo
{
public static void main(String[] args)
{
Math m=new Math();
try{
System.out.println("除法操作:"+m.div(10,2));
}catch(Exception e)
{e.printStacktrace();
}
}
}
总结 :throw和throws连用的好处是,不管Math类中的计算方法是否会出现异常,都会执行“div over”.以后的编程练习要经常用这一方法。
两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。