前言
本节我们复习一下JAVA的异常以及异常处理机制。
概述
- 异常类型
在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)。JAVA异常分为两类:
- Error:
Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理 - Exception:
其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。
- Error:
异常结构
java.lang.Throwable:Error/Exception的父类。
- Error:错误,程序中不进行处理。
Exception:异常,要求在编写程序时,就要考虑到对这些异常的处理。
编译时异常:在编译期间会出现的异常(执行javac.exe命令时,出现异常) 。
运行时异常:在运行期间出现的异常(执行java.exe命令时,出现异常)。
异常捕获机制
Java采用异常处理机制,将异常处理的程序代码集中在一起,与正常的程序代码分开,使得程序简洁,并易于维护。try-catch-finally异常捕获机制
try
捕获异常的第一步是用try{…}语句块选定捕获异常的范围,将可能出现异常的代码放在try语句块中。catch(可选)
在catch语句块中是对异常对象进行处理的代码。每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。finally(可选)
捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。
Throws 声明抛出异常
如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。public static void exceptionCatch() throws Exception{ }
Throw 手动抛出异常
Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要人工创建并抛出。
- 自定义异常类
一般地我们需要在特殊的场景中自定义异常。通常而言自定义异常类都必须要继承Exception类。