1.定义:异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。
程序在运行时出现的不正常情况。其实就是程序中出现的问题。这个问题按照面向对象思想进行描述,并封装成了对象。异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故障,角标越界,空指针等。异常就是java按照面向对象的思想将问题进行对象封装。这样就方便于操作问题以及处理问题。
2.分类:
|--编译时被检查的异常 Exception
|--运行时异常 RuntimeException
引申:java.lang.Throwable Throwable 可抛出的
|--Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
|--Exception:异常,可以有针对性的处理方式
错误/异常,它们都有具体的子类体现每一个问题,它们的子类都有一个共性,就是都以父类名字作为子类的后缀名。
可抛性的体现:这个体系中的类和对象都可以被throws和throw两个关键字所操作。
3.处理方式:1)捕捉 2)抛出
1.捕捉
public class forExceppiton
{
public static void main(String[] args) {
Date date = readDate();
System.out.println("日期 = " + date);
}
// 解析日期
public static Date readDate() {
try {
String str = "201A-8-18"; //"201A-18-18"
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// 从字符串中解析日期
Date date = df.parse(str);
return date;
} catch (ParseException e) {
System.out.println("处理ParseException…");
e.printStackTrace();
}
return null;
}
}
2.抛出
4.try 和 throws 的区别,使用场景
功能内部出现异常,内部能够处理就使用try ,功能内部处理不了就申明出来,
让调用者处理。
5.try catch finally 几种用法
这种情况,如果出现异常,并不处理,但是资源一定关闭,所以try finally集合只为关闭资源。
记住:finally很有用,主要用户关闭资源。无论是否发生异常,资源都必须进行关闭。
System.exit(0); //退出jvm,只有这种情况finally不执行。