Java 异常学习
1. 概述
异常,顾名思义就是为了描述和处理程序在运行期间的例外情况而存在的体系,本着面向对象的思想,Java中的异常也作为类型和对象存在。
Java中异常都继承自Throwable接口,提供了两个实现类:Error 和Exception;Error,表示这个异常非同小可不要接(An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch);Eception的实现类可以分为两种,受检查的Exception和RuntimeException;程序编译过程中,就可以暴露的异常称为受检查异常CheckedException(CE),例如FileNotFoundException、CloneNotSupportedException,这些异常如果没有被合理的捕捉,那么就会导致编译失败,这些CE一定程度上可以降低程序在运行时候可能出现的问题,对语言的使用人员比较友好(也有人认为反之);RE是不会被编译器检查,但是会在程序运行时抛出的意外情况,比如ArithmeticException、NullPointerException、ArrayIndexOutOfBoundsException。
2. 下面上个图:
3. 不得不TryCatch的CE展示Code:
如果下面的这些CE,没有被捕捉,那么编译器就会报错。
“`java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class LeWellKnownException {
public static void main(String[] args) {
String path = “E:/service.xml”;
File file = new File(path);
try {
FileInputStream fileInputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
LeWellKnownException clone;
LeWellKnownException leWellKnownException = new LeWellKnownException();
try {
clone = (LeWellKnownException) leWellKnownException.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
String dateStr= "20170505123636";
try {
Date date = new SimpleDateFormat().parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
“`java