异常处理,

异常处理概述:

异常:

     这个最让“程序员”头疼的词语;这要花我们80%的时间去处理它;所以这一章也是十分重要的。

     我们必须要让我们编译的程序具有良好的“健壮性”,能良好的“运行”

1.error :1.硬件问题 2. 运行环境问题(用代码不能解决的问题)。

2.Exception :1.用代码能理解 :i:编译时异常(checked)  ii:运行时异常(uncheced)

异常的控制流程:

      1.异常处理机制:依次将异常传给方法调用者(若方法调用者不处理就一直传给上一次的调用者,最后到main函数-->最后传给虚拟机)

      ii.异常处理的两个方法 getMassage(),printStackTtace();

      2.异常的捕获机制

      try{

         正常逻辑必须执行,但可能发生异常

      }catch(异常名称 e){

         捕获块

      }

      catch可以有多个,捕获多种异常;为了避免无法考虑到的异常;通常会在最后加上:

      catch(Exception e){

      }   即:所有异常一起捕获

 Thowable类:

            是error和Exception的父类

            Thowable 不是接口

异常的处理和声明的规则 :

            完整的异常块:

            try - catch - finally  finally中的语句无论是否发生异常都会执行 常用于:(i:资源清理 ii:管道的关闭 iii:回收) 唯有system.exit(0)可以阻止(关闭JVM)

            finally只能放在最后 try - catch ; try - finally

            声明异常 :

                    thows 声明异常放在方法名的后面,可以更多个异常类,警告方法调用者在编译期,该方法有可能发生异常,要求处理。

                    thow 指抛出异常,放在方法体中用于抛出异常对象

            完整的方法声明:

                  访问修饰符  可选修饰符  返回类型  方法名(形参列表)thows(异常类列表)    

            用户自定义异常:

                 一个完整的自定义异常要满足:

                 1.必须继承Exception

                 2.至少重载三个构造方法

                 方法重写中:

                 1.子类 重写抛出的异常不能比父类多(指的不是个数,而是范围大小)

                 2.子类抛出的异常不能与父类无关,要么一样,要么在父类的范围中  

日志打印:

异常打印:

e.toString():打印异常的类型,例如:NullPointException ,ClassNotFoundException,OutOfBoundException...

e.getMessage():打印错误的原因 ,如空指针错误就打印null,如是计算除数为0 即 int a = 20/0 ,就打印/by zero

e.printStackTrace():  打印错误的原因,还打印错误的位置

备注:

有一次开发环境代码和测试环境代码一样,但是测试环境报错了,全局异常里面error就是用的e.getMessage() ,后面居然是打印的一个日期,找这个bug找了2天,后来把e.getMessage()改成打印e,错误才出来,原来是GSON转换日期出错了,换了一个转json的工具就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值