这篇文章上次修改于 1905 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 >Exception和Error都继承自Throwable类,可以被throw和catch,那么他们有什么区别呢 1.Exception是程序正常运行中,可以预料的意外情况,可能而且应该被catch,进行处理 2.Error是不大可能出现的情况,绝大部分Error会导致JVM处于非正常的不可恢复的状态,如OOM,不便于或者也不需要捕获。 3.Exception分为可检查异常和不检查异常。可检查异常是编译器检查的一部分,必须显示的进行捕获处理,如IO异常。不检查异常是运行时异常,可以再运行时用代码判断是否捕获。如空指针,数组超界。常见问题参考--https://blog.csdn.net/bryantlmm/article/details/78118763 4.注意try catch是有性能损耗的,不要用try包括大量的代码,用if else会更高效。对于追求极致性能的底层类库,会使用创建不进行栈快照的Exception。 5.Reactive 编程时,不能简单的抛异常,异常处理也要非常小心,很容易导致其他问题
没有评论