public class ExceptionDemo {
public static void main(String[] args) throws MyException {
// 异常处理方式
// 方式一:不处理异常,向上抛出异常;在顶层的时候处理
// 1.出现的原因:防止代码冗余,统一处理
// 2.使用throws会中断程序的执行
//throw new MyException("自定义类出现异常");
// 方式二:使用try...catch
// 1.程序不中断,继续执行接下来的代码
// 2.catch中的异常类型需要从小到大;否则报错
try {
divide(23, 0);
} catch (ArithmeticException e){
System.out.println("被除数不能为0~");
}catch (Exception e) {
System.out.println("系统出错了~");
}
System.out.println("123");
// 什么才是真正的异常
// 处理了的异常不算真正的异常;如网络断开,系统的一些硬件问题等才是真正的异常
// 项目中的异常一般使用拦截器来处理
}
public static void divide(int a, int b){
System.out.println(a/b);
}
}
// 自定义异常类
// 继承了Error/Exception/Throwable
class MyException extends Exception{
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}