Java异常处理

假设没有异常处理机制,当程序出现非正常情况时,程序便会直接结束(因为无法继续运行程序打印日志,所以是什么原因导致程序崩溃都不知道);有异常处理时,当程序出现非正常情况时,可以捕获这异常信息并做处理(比如打印错误日志),再看业务情况是否继续运行或结束程序。所以“异常”是属于一种可预测的正常情况。

异常的作用:异常机制可以使程序中的异常处理代码和正常业务代码分离,保证程序代码更加优雅、有更好的容错和更加健壮。

2.异常的分类(异常继承体系)

分为两大类:错误和异常(编译时异常和运行时异常)

列出常见的几个错误和异常类型。错误和异常的种类很多,Java编程语言所涉及的能力中都有相应的异常类,如有不懂可以查看源码的类注释。

Java异常处理

3.异常的使用 3.1.异常处理

编程语言的异常处理基础能力已经成为一门成熟编程语言的标准,除传统的像C语言没有提供异常机制之外,目前主流的编程语言如Java、C++、Python、Go、Ruby等都具备了成熟的异常机制。

异常的处理:抛出异常(提出问题)和 捕获并处理异常(解决问题)。当程序出现当前环境无法处理产生的问题时,便向上一级抛出问题,寻找能解决问题的环境,直到找到含有合适异常处理的方法并执行,未找到则终止程序。

Java 异常机制的五个关键字:try 、catch 、finally 、throw 和throws。

try关键字后紧跟一个花括号扩起来的代码块(花括号不可省略),用于监听可能引发异常的代码;

catch关键字后异常类型和一个异常处理代码块,捕获某一类型的异常和处理这种类型的代码块。catch块可以有多个,表示捕获不同类型异常和处理;

finally关键字位于catch块后,用于回收在try块里打开的物理资源,异常机制会保证finally块一定会被执行;

throws关键字在方法签名中使用,用于声明该方法可能抛出的异常;

throw关键字用于抛出一个实际的异常对象,throw可以单独作为语句使用。

throw与throws的区别

throws:在方法声明时使用,声明可能会抛出的一个或多个异常。

throw:在方法内使用,手动抛出一个异常对象;

throw与throws的关系

throw在方法内手动抛出一个异常对象,此时在方法声明中必须使用throws抛出该异常或其父类异常。throw是抛出异常对象,throws是告诉使用者这个方法可能有这个异常。

3.2.异常的处理流程

Java异常处理

3.3.异常实战

try……catch

try……finally

try……catch……finally

try……catch……catch……finally

案例一

// 检测 try{ System.out.println("检测是否有异常"); float a = 1/0; System.out.println("出现异常后,我还可以执行吗"); } // 捕获和处理 catch (Exception e){ e.printStackTrace(); System.out.println("捕获和处理异常"); } System.out.println("继续执行吗?");

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsggw.html