// 【异常】:
// 1.Throwable:异常类和错误类的顶级父类
// 2.Error:错误类,程序无法处理的错误
// 3.Exception:异常类,程序本身可以处理的错误
// 4.RunTimeException:运行时的异常 Exception的子类
// 异常的分类
// 1.可查异常:除了运行时的异常和他的子类,其他都是可查异常
// 2.不可查异常:运行时异常和错误
// 可查异常:
// 抛异常的作用:找到异常位置,防止崩溃
try {
Date d1=sd.parse(s0);
} catch (ParseException e) {
// 报错
// e.printStackTrace();
System.out.println("数据格式不对");
}
// 【常见异常】:
// 1.ArrayIndexOutOfBoundsException 数组下标越界异常
// 2.StringIndexOutOfBoundsException 字符串下标越界异常
// 3.NullPointerException 空指针异常
// 4.ClassCastException 类转换异常
// 5.ArithmeticException 算术异常
// System.out.println(12/0);
// 6.NumberFormatException 数字转换异常
// 【异常的五个关键字】
// try: 指定一个代码块预防所有异常,需要紧跟catch
// 后面可以跟多个catch,按照异常顺序捕获异常
// 如果有0个catch必须跟上finally
// catch:放在try后面,用来捕获异常类型
// finally: 无论是否发生异常,fianlly都会执行
// 在return之前执行.
//
// throws:放在方法名后面主动抛出异常;
// throw:放在方法体里,主动抛出异常;
// [自定义异常];
// 1.新建异常类,继承Execption类,创建构造方法,设置message信息
// 2.在需要的地方 用throw new 新的异常类 来抛出异常