笔记关键字:Java 异常 异常处理 自定义异常 throw throws
如下述内容有误,还请及时告知,感谢
异常概述
异常.png
简单说明一下:
- Throwable :异常的基类
- Error :JVM 发生的错误
- Exception :可处理异常
- RuntimeException :运行时异常
- ... :其他,检查异常
异常处理方法
- try...catch...finally
- throws
try...catch 捕获异常,程序不会 return,也就是说发生异常被捕获处理后,后面的代码仍能执行
throws 写在方法上,程序会 return ,后面的代码不会执行
throw 此处发生一个异常,不做其他处理程序会 return,该代码执行后,后面的代码不会执行
代码:
public class ExceptionTest {
public static void main(String[] args) throws Exception {
System.out.println("标记 0");
try {
int a = 1 / 0;
System.out.println("标记 1");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("处理后1...");
int b = 0;
if (b==0){
throw new Exception();
//System.out.println("hello"); 此处不注释报错
}
System.out.println("处理后2...");
}
}
运行结果:
标记 0
处理后1...
java.lang.ArithmeticException: / by zero at exception.ExceptionTest.main(ExceptionTest.java:9)
Exception in thread "main" java.lang.Exception at exception.ExceptionTest.main(ExceptionTest.java:17)
自定义异常
创建一个类继承 Exception 或 RuntimeException 或其他异常类,配合 throw 使用
场景举例:发表评论需要登录才有权限,校验登录状态,如果未登录,throw 一个权限不足的异常(自定义),终止接下来的操作,在切面处理返回内容。