标签:运行时 不能 轻松 选择 出现 存在 catch 处理 优化
Java 中的异常分为运行时异常与受检异常。
受检异常(比如 IOException)
优点:需要手动检查try catch或者继续向上抛出,可以说异常是类型安全的,可以保证程序的健硕性。
缺点:此类异常要么改变签名(向上抛出)要么手动捕获。如果某个方法添加了这类异常,可能导致一系列方法受影响。或者呢,对于那些已存在的方法因为不能自己改签名,将无法继续使用,必须重写。
运行时异常
优点:运行时异常可以不处理。对于那些已存在的方法,不用进行任何修改,仍可以继续使用。
缺点:因为可以不处理,有时很难去发现,但是一旦发生会导致程序错误。这要求程序编写者有较高的水平,尽量避免发生该异常。实在不行可适当捕获(前提是你知道会发产生该异常)。
个人理解,运行时异常的出现是为了不改变现有程序或为了多处复用体现的一个机制。尽管需要程序编写者有极高的耐心去手动避免发生该异常。对于一些需要被多层调用的代码,建议使用这类异常。否则的话,每次调用都要显式向上抛出或捕获。
而受检异常,用于很难通过优化代码避免,需要主动处理的情形。
说到自定义异常,选择运行时异常还是受检异常主要考虑以下几点:
1.异常是否可以避免(是的话,选择运行时异常)
2.如果发生异常,会不会导致整个程序无法继续下去(否的话,建议选择运行时异常)
根据上面的几点说明,如果你选择的是运行时异常。那么考虑是否需要手动捕获运行时异常呢?如果可以通过优化代码来避免异常,通常不应捕获;如果无法轻松地通过优化代码去避免,可考虑适当捕获。
标签:运行时 不能 轻松 选择 出现 存在 catch 处理 优化
原文地址:https://www.cnblogs.com/lemos/p/11768888.html