异常有哪些分类

所有异常都是 Throwable 的子类,分为 Error 和 Exception。

  • Error 是 Java 运行时系统的内部错误和资源耗尽错误,例如 StackOverFlowError 和 OutOfMemoryError,这种异常程序无法处理。

  • Exception 分为受检异常和非受检异常,受检异常需要在代码中显式处理,否则会编译出错,非受检异常是运行时异常,继承自 RuntimeException。

受检异常:
  1. 无能为力型,如字段超长导致的 SQLException。

  2. 力所能及型,如未授权异常 UnAuthorizedException,程序可跳转权限申请页面。

  3. 常见受检异常还有 FileNotFoundException、ClassNotFoundException、IOException等。

非受检异常:

  1. 可预测异常,例如 IndexOutOfBoundsException、NullPointerException、ClassCastException 等,这类异常应该提前处理。

  2. 需捕捉异常,例如进行 RPC 调用时的远程服务超时,这类异常客户端必须显式处理。

  3. 可透出异常,指框架或系统产生的且会自行处理的异常,例如 Spring 的 NoSuchRequestHandingMethodException,Spring 会自动完成异常处理,将异常自动映射到合适的状态码。

posted @ 2022-05-12 17:53  张三丰学Java  阅读(776)  评论(0编辑  收藏  举报