异常处理

   异常:描述程序在正常执行过程中发生的错误条件,对错误信息的描述。
   异常都是写在方法里面的。
   在JAVA中,异常是Throwable及其子类的实例对象。
   Throwable类有两个子类:
   —Error 错误 表示严重的错误,这个程序不应当由应用程序来捕获。
   —Exception 异常  表示一个应当被捕获的错误条件
    eg:OPP ———— JVM(JAVA虚拟机)————OS(操作)
                      ( 严重错误)Error
   
    在Throwable类中有两个方法,可以用于获取抛出异常的信息
    —getMessage
    —printstackVrace
    异常类型
    —checked  检查异常   编译时检验的异常
    —unchecked  非检验异常(又叫JAVA异常) 非编译时检验的异常
    判定一个异常但是编译异常还是非编译异常,看类是否直接或间接继承runtimeException,是则为运行时异常,否则是编译异常

    异常抛出:
    针对一个方法而言,在预知程序将要可能发生一种异常时向调用者提供一组错误的信息。
    为什么要异常抛出:
    为了给调用者提供一组有用的错误信息。
    throwable new exception:当方法有某个地方它所需要的条件不满足的时候就需要对外抛出异常。
    编译异常强制要求用try...catch捕获,运行期异常不要求try...catch捕获。
    异常抛出方法:
    —throws exception  声明方法+异常类型 可能抛出异常
    —throw  new exception(构造方法) 真正抛出异常对象
    eg:
       throw  new runtimeException  运行期异常
           (不会显示出来)
   
     为什么要进行异常捕捉
      当程序异常发生时,后面的程序将会终止,如想后面的程序需要继续运行,这时就需要异常捕捉。
     异常传播
     如果一个方法是异常的传播器,我们需要修改方法的声明类,声明方法传播的异常类型
   
    一个异常捕获器(try...catch)包括一个抛出异常相匹配的catch程序块
    eg:
     public bb() throws Exception{
      }
    public aa() {
       try{ 
           bb();    //调用bb()方法
        }catch(Exception a){
         }
     }
    一个异常传播器不包括与抛出异常相匹配的catch程序块
    一个方法可以成为一个异常的捕获器和另一个异常的传播器
   
    如果有一段代码不管是否发生在异常抛出都是要被执行,我们使用关键字finally,即使在try...catch部分中具有任何数量的return语句时,try...catch块的finally字句将始终执行,除非使用System.exit(0)来终结程序


   自定义异常:
     public class Mywindow(){
         public static void main(String[] args){
                new Mywindow();
         }
          public void a() throws tonyException{
                throw new tonyException("错误");
          }
     }

     自定义异常:
          public class tonyException extends Exception{
               public tonyException(String a){
                     super("a")
               }
          }

     以上是第八章学的,上面只是个人对它的理解及加以整理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值