JAVA的异常总结

他们具有一个共同的父类 Throwable   

而 Throwable 有两个子类继承了此类,一个为error 一个为Exception  

error的错误级别是  虚拟机级别的  也就是我们是无法进行处理的  所以探讨的异常处理只针对于Exception的子类。

java的异常分为运行时异常和编译时异常

常见的运行时异常包括  NullofPointException     ArrayofIndexException 和ClassCaseException

编译时异常常见的有 IO的异常  SQL的异常  

自定义异常:

如果你想自定义一个异常类,有两个情况,

1:如果定义的是一个编译时异常类, 那么他需要继承于Exception类

2:如果定义的是一个运行时异常类,那么它需要继承自RunTimeException类

Try Catch Throw 和Throws 和差别

try catch  是作用于代码块的  是自己解决 如果catch 能够抓住(类型匹配)这个异常。那么程序不会崩溃,可以继续执行之后的代码, Throws是 作用于方法的,如果一个方法的后面跟着一个Throws 那就代表这个方法可能会抛出后面的一些异常,而throw  是用来抛出一个实际的new出来的异常,就像形式参数 和实际参数一样的差别。

并且throws是将异常定义,如果谁 调用此方法 必须提供解决的方案, 如果最终调用此方法的是main 且main也并不做处理 而是继续选择throws  那么就会抛给虚拟机,虚拟机的处理方式就是 打印出错误 并终止代码。


关于return 和finally的

不管有多少个return  finally总是会在try catch finally三连的终止前运行, 

如果想让finally不运行,当然 这是没必要的,  可以在前面执行的代码中执行System.exit(0):

退出虚拟机。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 八、深入理解java异常处理机制 引子try…catch…finally恐怕是大家再熟悉不过的语句了, 你的答案是...
    壹点零阅读 1,660评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 我想介绍一群人,他们眼里隐藏着忧伤。
    cf4083e2b1e0阅读 244评论 0 0
  • 猫咪的寿命是不能用时间计算的,它漫长的如同千年,细想又恍如一瞬。 爪爪就是这样一只善良老成又最最调皮的母猫。它喜欢...
    逸黎阅读 1,344评论 2 3
  • 金庸小说里的男主角好像都有点问题,郭靖太笨、杨过气量太狭窄、张无忌太容易受人影响、令狐冲太吊儿郎当、陈家洛太轻信、...
    夜弦朝歌三千年阅读 1,198评论 0 0