第十一章 异常处理

一、异常的分类及概念

java中异常情况分为:错误和异常

错误:一般是由于硬件或者软件运行环境中发的问题,并且无法靠代码的手段来解决。

异常:分为运行异常和编译异常,都是在程序运行中发生的问题,可以用编程来解决。

运行异常:程序执行时产生的,类加载之后,如果不提前加以处理,一旦发生会导致程序崩溃

编译异常:编写代码产生的,必须对异常进行处理或声明。

二、异常处理机制

异常处理的流程:

产生异常->抛出异常->(扑捉异常)->(处理异常)->(继续执行)

产生异常->抛出异常->都不声明或处理异常,(如果只有声明异常,到了最终也没有处理那么结果一样)程序会崩溃,并打印异常信息

注意的是:

1.当方法中有明确的抛出异常throw时,方法也要声明这个异常

2.抛出异常的方法被重写override时,重写的方法抛出的异常必须方法的子集(<=),多了会破坏异常处理的声明机制

异常信息包括:

线程  ;类  ;  异常数据  ; 异常位置(最上面自己写的)

三、异常处理

java中编译异常必须声明或处理;运行异常可选择处理(发现错误,专门用于测试代码时,可以不用处理)

java中异常的处理包括2种形式:

声明异常:throws,写在方法的参数列表后面,可以抛出多种类型的异常。

抛出异常:throw     new   Exception();//方法体中,抛出某个异常的对象,用于扑捉。

处理异常:用处理3个关键字

try{   可能发生异常的代码}

catch(子类1){处理代码}

catch(子类2){处理代码}

catch(父类1){处理代码}

catch(父类2){处理代码}

catch(Exception ex){处理代码}    所有异常的父类,能抓所有的异常Exception

catch(Throwable th){处理代码}  异常和错误的父类,能抓所有的Error

finally{最后一定会执行的代码,一般是做清理工作}

四、自定义异常

为了统一处理异常,或者处理一些java定义中不是异常的(业务应用中的异常)的异常。我们有必要自己定义一些异常,用来解决这些问题。

public  class   MyException extends Exception{

         public MyException(){

         }

         public MyException(Exception  ex){

                    super(ex);

         }

         public MyException(String  msg){

                   super(msg);

         }

         public MyException(Throwable  th){

                  super(th);

         }

         public MyMethod(){

                   //自己的处理方式

                  //异常处理代码

         }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值