前言
异常简单来说就是我们的程序的错误提示,像我们平常写程序时,有时候程序还没运行就会报错,这是编译时异常,但有时候编译时没有报错,运行时就会出错,导致程序终止无法继续运行下去,这就是运行时异常
编译时异常
编译时异常就是程序在编译时就会出现异常提醒,表示这段代码在运行时很容易出现错误,如果不抛出异常处理这段代码运行时就会报错,抛出异常处理是为了让我们的程序在出错时得到良好的处理,增加程序的可用性
- 自定义编译时异常类
- 定义一个异常类继承Exception类
- 重写其构造器
- 通过throw new 异常类()来创建异常类并抛出处理
- 编译时异常会在写完程序时报错,可以通过在此代码块中throw 异常类或try catch 捕获异常处理
public class Demo01 {
public static void main(String[] args) throws MyException {
SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = dft.parse("2001-01-19 11:23:45");
} catch (ParseException e) {
throw new MyException("时间转换异常");
}
}
}
class MyException extends Exception{
public MyException() {
}
public MyException(String message) {
super(message);
}
}
运行时异常
运行时异常就是我们的程序在编译时没有错误,但是当我们运行的时候就会出现异常提醒,导致我们的程序被迫终止,类似数组的索引越界异常、算数的错误异常等等
- 自定义运行时异常类
- 定义一个异常类继承RuntimeException
- 重写构造器
- 通过throw new 异常类() 来创建异常对象并抛出
- 编译阶段不报错,提醒不强烈,运行时才可能出现
public class Demo02 {
public static void main(String[] args) {
try {
int a = 10;
int b = a/0;
} catch (Exception e) {
throw new MyRuntimeException("运行时异常");
}
}
}
class MyRuntimeException extends RuntimeException{
public MyRuntimeException() {
}
public MyRuntimeException(String message) {
super(message);
}
}