一、异常
异常
:指的是程序在执⾏过程中,出现的⾮正常的情况,最终会导致
JVM
的⾮正常停⽌。
在
Java
等⾯向对象的编程语⾔中,异常本身是⼀个类,产⽣异常就是创建异常对象并抛出了⼀个 异常对象。Java
处理异常的⽅式是中断处理。
异常的根类是
java.lang.Throwable
,其下有两个⼦类: java.lang.Error
与
java.lang.Exception
,平常所说的异常指
java.lang.Exception
。
Throwable
体系:
Error
:严重错误
Error
,⽆法通过处理的错误,只能事先避免,好⽐绝症。
Exception
:表示异常,异常产⽣后程序员可以通过代码的⽅式纠正,使程序继续运⾏,是
必须要处理的。好⽐感冒、阑尾炎。
Throwable
中的常⽤⽅法:
public void printStackTrace()
:打印异常的详细信息。包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使⽤
printStackTrace
。
public String getMessage()
:获取发⽣异常的原因。提示给⽤户的时候,就提示错误原因。
public String toString()
:获取异常的类型和异常描述信息(不⽤)。
1.异常Exception
1、异常(Exception)的分类:
编译时期异常
:
checked
异常。在编译时期,就会检查,如果没有处理异常,则编译失败。
(如⽇期格式化异常)
|- parseException - 格式化异常
|- IOException - IO异常
|- FileNotFoundException - 文件未找到
|- ClassNotFoundException - 类未找到
|- UnsupportedEncodingException - 不支持的字符集异常
运⾏时期异常
:
runtime
异常。在运⾏时期,检查异常。在编译时期,运⾏异常不会编译器
检测(不报错)。(如数学异常)
|- NullPointerException - 空指针异常
|- IndexOutOfBoundException - 下标越界异常
|- ClassCastException - 类型转换异常
|- NumberFormatException - 数值转换异常
|- IllegalArgumentException - 非法的参数
|- UnsupportedOpertionException - 不支持的操作
2、异常的处理
Java
异常处理的五个关键字:
try
、
catch
、
finally
、
throw
、
throws
2.1捕获异常try…catch
捕获异常
:
Java
中对异常有针对性的语句进⾏捕获,可以对出现的异常进⾏指定⽅式的处理。
try
{
编写可能会出现异常的代码
}
catch
(
异常类型
e
) {
处理异常的代码
//
记录⽇志
/
打印异常信息
/
继续抛出异常
}
try
:
该代码块中编写可能产⽣异常的代码。
catch
:
⽤来进⾏某种异常的捕获,实现对捕获到的异常进⾏处理。
注意:
try
和
catch
都不能单独使⽤,必须连⽤。
如何获取异常信息:
Throwable
类中定义了⼀些查看⽅法:
public String getMessage()
:获取异常的描述信息,原因(提示给⽤户的时候,就提示错误原因)。
public String toString()
:获取异常的类型和异常描述信息(不⽤)。
public void printStackTrace()
:打印异常的跟踪栈信息并输出到控制台。包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使⽤
printStackTrace
。
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
try- catch解决已检查异常
*/
public class ExceptionDemo01 {