异常分类和异常的产生过程解析和Objects非空判断
java.lang.Throwable类是java语言中所有错误的异常的超类。
Exception:编译期异常,进行编译(写代码)java程序出现的问题
RuntimeExeption:运行期异常,java程序运行过程中出现的问题
异常就相当于程序得了一个小毛病(感冒发烧)把异常处理掉程序就可以继续运行
Error错误:错误就相当于程序得了一个无法治愈的毛病(非典,艾滋),必须修改源代码,程序才能继续执行
public class Test{
public static void main(String[] args) /*throws ParseException*/ {
// Exception:编译期异常,进行编译(写代码)java程序出现的问题
/* SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = simpleDateFormat.parse("1999-0909");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("后续代码");
System.out.println(date);*/
/*// RuntimeExeption:运行期异常,java程序运行过程中出现的问题
int[] arr = {1,2,3};
// System.out.println(arr[0]);
try {
System.out.println(arr[3]);
} catch (Exception e) {
System.out.println(e);
}*/
// Error错误:错误就相当于程序得了一个无法治愈的毛病(非典,艾滋),必须修改源代码,程序才能继续执行
//OutOfMemoryError: Java heap space
int[] ints = new int[1024*1024*1024];
}
}
Objects非空判断
还记得我们学习过一个类Objects类吗,曾静提到过他由一些静态的实用方法组成,这些方法都是空指针安全的
或者容忍空指针的那么在他的源码中,对对象为null的值进行了抛出异常的操作
public static
查看源码发现这里是对为null的进行了抛出异常的操作
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}