异常

异常中的不正常情况分成两大类:

      Throwable:无论是error还是异常。问题发生之后就可以被抛出,让调用者知道并且处理。

      throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。

  1. 一般不可处理的 Error

    特点: 由jvm抛出的严重性的问题(问题发生时一般不针对性处理,直接修改程序)

  2.可以处理的 Exception

 

异常的分类:

编译时被检测异常:只要是Exception 和其子类都是 除了特殊子类RuntimeException体系

  这种问题一旦出现希望在编译时就进行检测,让这种问题有对应的处理方式。(这样的问题都可以针对性处理)

编译时不检测异常(运行时异常):就是Exception中的RuntimeException和其子类

  这种问题的发生 无法让功能继续,运算无法进行,更多是因为调用者导致的,或者引发了内部的状态的改变导致的

  这种问题 一般不处理,直接编译通过,在运行时让调用者调用时强制停止。让调用者对代码进行修正。

 

在自定义异常时 要么继承Exception 要么继承RuntimeException

 

throws 和throw 的区别:

  1  throws使用在函数上

      throw使用在函数内

  2  throws抛出的是异常类,可以抛出多个,用逗号隔开

      throw抛出的是异常对象

 异常处理的捕捉形式:

try

{

  //需要被检测的异常

}

catch(异常类 异常对象) //该变量用于接收发生的异常对象

{

  //处理异常的代码

}

finally

{

  //一定会被执行的代码

}

 

finally 

  finally 中若是有返回值 则会覆盖try 和 catch 中的返回值

  finally 中的返回值会抑制前面try和catch中的异常

  finally中的异常会覆盖前面try和catch中的异常

因为finally中的代码一定会执行 

posted @ 2019-03-04 17:11  wrpqh  阅读(29)  评论(0)    收藏  举报