JavaBasics:Exception And Error

异常与错误

异常处理机制:

性能:

Try-catch代码:会产生额外的性能开销\影响JVM对代码的优化,所以建议仅仅捕获有必要的代码段,尽量不要整段包住;与此同时,利用异常控制代码流程,也比条件语句(if/else,switch)更低效。

Java每实例化一个Exception,都会对当时的栈进行快照,[当服务出现变慢,吞吐量下降时,检查发生最频繁的Exception是种思路]

 

Excetion和Error的区别:

继承:都继承了Throwable类。只有Throwable类型的实例才可以被抛出或者捕获,踏实异常处理机制的基本组成类型。

分类:不同情况的分类

      Exception:

      可检查异常:在源代码里必须显式捕获处理,这是编译期检查的一部分

不检查异常:运行时异常、

      Error:

 

异常处理的两个基本原则

第一、尽量不要捕获类似Exception的通用异常,而应捕获特定异常。

第二、不要生吞异常。可能会导致难以诊断的诡异情况。

尤其是对于分布式系统,如果发生异常,但无法找到堆栈轨迹(stacttrace),这纯属是为诊断设置障碍。所以,最好使用产品日志,详细地输出到日志系统里。

 

Throw early,catch late原则

发现问题,第一时间抛出能更加清晰地反映问题

捕获异常,生吞\自定义异常

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/81569322