大家好,欢迎来到IT知识分享网。
Java 异常分类
Throwable类有两个直接子类:
- Exception:出现的问题是可以被捕获的;
- Error:系统错误,通常由JVM处理。
可捕获的异常又可以分为两类:
(1)checked异常: 直接派生自Exception的异常类,必须被捕获或再次声明抛出。
- 无能为力、引起注意型 — 如SQLException(字段超长),只需要保存异常线程,人工介入解决。
- 可以处置型 — 如发生未授权异常(UnAuthorizedException),可以跳转至权限申请页面。
(2)unchecked异常( RuntimeException):派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象。
throw new ArithmeticException(…);
- 可预测异常(Predicted Exception)— 如IndexOutOfBoundsException、NullPointerException,应该提前做好边界检查、空指针判断。
- 需捕捉异常(Caution Exception) — 如DubboTimeoutException,客户端必须显式处理,可以重试或者降级处理等等。
- 可透出异常(Ignored Exception)— 框架或系统产生的,且会自行处理,而程序无须关心。
异常抛出设计:
- 对外提供的开发接口,建议使用错误码;
- 公司内部跨应用远程服务调用,优先考虑使用Result 对象来封装错误码、错误描述信息;
- 应用内部,则推荐直接抛出异常对象;
防止NPE(NullPointerException),一定是调用方的责任,需要调用方进行事先判断。
两个关键字 throw 和throws 的区别
throw new Exception(…);
- throw — 在方法内部抛出具体异常类对象的关键字;
- throws — 用在方法signature 上,表示方法调用者可以此方法声明向上抛出异常对象。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13147.html