编译时异常和运行时异常的区别
Java中的异常分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常所有的RuntimeException类及子类都被称为运行时异常,其他的异常都是编译时异常
- 编译时异常:必须显示处理,否则程序会放生错误,无法通过编译
- 运行时异常:无需显示处理,也可以通过编译时异常一样处理
/**
* @author Wrry
* @data 2020
* @desc 编译时异常和运行时异常的区别
*/
public class YiChang03 {
public static void main(String[] args) {
// method();
//method02();
method01();
}
//编译时异常,异常处理类
public static void method02(){
try {
String sj = "2020-08-18";
//通过异常处理后,只要定义字符串与方法定义格式相同就不会出错
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(sj);
//编译时异常,说明的是有可能出现异常,不是一定出现异常
System.out.println(d);
}catch (ParseException e){
e.printStackTrace();
}
}
//编译时异常演示类
public static void method01(){
String sj = "2020-08-18";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(sj);//Unhandled exception: java.text.ParseException
System.out.println(d);
}
//运行时异常
public static void method() {
try {
int[] arr = {11, 22, 33, 44};
System.out.println(arr[4]); //ArrayIndexOutOfBoundsException
}catch (ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
}
}