Throwable中Exception/Error异常的分类及处理
package Day18;/*
*@author wanghongyuan
*@Create 2020/12/27 15:20
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
java.lang.Throwable:类是 java 语言中所有错误或者异常的超类。
Exception:编译期异常,进行编译(写代码)java程序中出现的问题。
异常就相当于程序得了个小毛病(感冒,发烧),把异常处理掉,程序可以继续执行(吃点药就可以好)
Error:错误
错误就相当于程序得了个无法治愈的毛病(非典,艾滋)必须修改源代码,程序才能继续执行
*/
public class DemoException {
public static void main(String[] args) /*throws ParseException*/ {
/*
// Exception:编译期异常,进行编译(写代码)java程序中出现的问题。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//用来格式化日期
Date dat = null;//把字符串格式的日期,解析为Data格式的日期
try {
dat = sdf.parse("2020-1216");//把字符串格式的日期,解析为Data格式的日期
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(dat);//thread "main" java.text.ParseException: Unparseable date: "2020-1216"
*/
// RuntimeException:运行期异常,java程序运行过程中出现的问题
/*int[] arr={1,2,3};
try{
// 可能会出现异常的代码
System.out.println(arr[3]);
}catch (Exception e){
// 异常的处理逻辑
System.out.println(e);//java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
}*/
/*
Error:错误
java.lang.OutOfMemoryError: Java heap space
内存溢出的错误,创建的数组太大了,超出了给Jvm分配的内存
*/
int[] arr = new int[1024*1024*1024];//Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
// 必须修改代码,创建的数组小一点,就不会有问题了
System.out.println(arr);
System.out.println("后续代码");
}
}