Java异常机制

记得最开始接触异常处理机制的时候,还是在画板的时候,见了个try{}catch{},不懂啊,现在才知道try{}中写的代码,是try 捕获得到的可能发生异常的代码,如果没问题就执行,如果出现异常,就交给catch{}处理。当然,异常机制不仅仅是try,catch。
Exception和Error的区别:
Exception一定是自己编写的代码出现了问题,而错误不一定是代码的问题,也可能是计算机的问题。
Exception是所有的异常的父类,Exception分为运行时的异常和强制异常。运行时的异常(顾名思义:就是运行时才会出现,在代码中却不会报错)有我最钟爱的空指针、数组下标越界和类型转换等。
各种空指针异常往上追溯就是没有给对象分配内存空间,有没有赋初值,这时候找到报错的那一行,在那一行前面添加输出行,看输出的参数是否为空值。
数组下标越界很好理解就是下标超出了数组的长度。
类型转换,这个刚刚知道,英文的是ClassCastException。我自个儿归纳的简单来说就是两个完全没有关系的类型不能转换,它不会在eclipse直接出现红线,而是运行的时候会出现这个错误。打个比方:往前追溯,所有人的祖先都是森林古猿,张三和李四也不例外,李四的儿子叫做李小四,你总不能硬把李小四说成也是张三的孩子吧。一样Test类和Student类的父类都是Object,但是Test类对象不能转换为Student类的呀,它们俩真的没有关系的说。
异常处理机制:
之前说了try{}catch{},还有try{}catch{}finally{},这个finally作为异常的统一出口,就是上面不管执行哪个,finally中的语句都会执行。有finally的时候语句块的编写中尽可能不要出现像throw或return这种语句,因为它是异常的统一出口,这样才可以避免不必要的问题出现。
来一段它们综合应用的代码哈:

public class ThrowDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
          ThrowDemo td=new ThrowDemo();//实例化对象
          try{
        	  System.out.println("除法操作:"+td.div(10,0));
          }catch(Exception e){//进行异常的捕获
        	  System.out.println("异常产生:"+e);
          }
	}

	private int div(int i, int j) throws Exception {
		int temp=0;//声明整形变量
		try{
			temp=i/j;
		}catch(Exception e){
			throw e;
		}finally{
			System.out.println("计算结束");
		}
		return temp;
		
	}

}

如上所示: throws用在方法声明的地方,表示此方法不处理异常,交给调用此方法的对象处理。
throw表示在方法中手工抛出一个异常,自个儿理解相当于throw抛给了throws,throws又往方法外面抛。呵呵,先就这些。欢迎补充(*^__^*) 嘻嘻……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值