Java异常

先来看看这张关于java异常的图


异常.png

所有异常的祖先:Throwable
Throwable的子类:Etrror 和Exception
Error:是程序无法处理的错误,大多数与代码编写无关,错误不可查(JVM运行错误,outofmemoryerror,stackoverflowerror/类定义错误)
Exception:是程序本身可以处理的异常,其中重要的子类有:RunTimeException:有ArithmeticException, NullPointerException,NumberFormatException,ArrayIndexOutOfBoundsException。这些异常不受检查,可以捕获处理,或者你可以不处理,应该从逻辑层面尽可能的避免。其他子类:IOException,SQLException,ClassNotFoundException,属于非运行时异常,必须trycatch捕获。

其他概念:
可检查异常:Exception中除去RunTimeException及其子类
不可检查异常:RunTimeException及其子类 + Error

throw和throws的区别:

throw关键字是在程序中明确的抛出异常;throws用来表明方法不能处理的异常,多个异常用逗号隔开。

try catch

1,try后面必须要有catch或者finally
2,多个catch块,当我们在发生不同异常时需要执行不同的任务,需要使用多个catch。需要注意的是,一次只有一个异常被捕获,一次只能执行一个catch;catch按照从具体到通用的顺序排序。
3,finally是无论是否处理异常都会执行,常用于关闭文件,关闭连接等操作。finally只有一个。注意:调用 System.exit() 或通过导致进程中止的致命错误。
4,trycatch中有return时,finally仍会执行;finally中有return程序会提前退出,返回的值不是trycatch中的值。

try-catch-finally中有return感觉是笔试必考的了,拎出来讲吧:
1,try{} catch{} finally{} return;:正常运行
2,try{return;} catch{} finally{} return;:首先执行try语句包括return后边的语句,再执行finally中的语句,最后执行try的return。(返回值为try中的return表达式的值,finally后的return不执行)
3,try{} catch{return;} finally{} return;:首先执行try语句;
异常:执行catch语句包括return后边语句,再执行finally语句,最后执行catch的return,finally之后的return不执行
正常:执行finally语句,然后return。
4,try{return}catch{}finally{return;}:首先执行try中语句和return后的语句,然后执行finally中的语句,最后执行finally中的return ,然后就提前退出了。
5,try{}catch{return}finally{return;}:
异常:执行catch语句和return后的语句,然后执行finally中的语句,最后执行finally的return,然后提前退出。
正常:执行finally中的语句,return。
6,try{return}catch{return}finally{return}:首先执行try中语句和return后的语句,
异常:执行catch中的语句和return后边的语句,然后执行finally中的语句,执行finally中的return提前退出。
正常:执行finally中的语句,再finally中的return。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目录介绍 10.0.0.1 见过哪些运行时异常?异常处理机制知道哪些?从异常是否必须需要被处理的角度来看怎么分类?...
    杨充211阅读 3,443评论 0 1
  • 今天继续讲解java中的异常处理机制,主要介绍Exception家族的主要成员,自定义异常,以及异常处理的正确姿势...
    Python编程社区阅读 2,241评论 0 1
  • 【传智播客.黑马程序员训练营成都中心】 Java异常浅析 前言 异常二字,从字面上来理解就是:不正常。程序中的异常...
    OpenCoder阅读 3,064评论 1 1
  • 昨天梦到你了。梦到了一些现在都想不起来名字感觉熟悉的人,早起感觉心情还不错,想起你的映像还是那个短发年少的你,现在...
    徐七分阅读 3,362评论 0 7
  • 2017.09.06孙愈颜连接真我指导灵天使 一、奇迹 1、今天好开心!每次穿上我们的航空服,就会觉得自己马上变得...
    爱笑的孙愈颜阅读 2,256评论 0 0

友情链接更多精彩内容