由于内部错误,Exception对象是否可能引发另一个异常?
假设在try-catch中我们实例化Exception对象,是否有可能实例化引发另一个异常?如果是的话,我们必须无限地嵌套看起来很有趣的try-catch块.
简而言之,答案是肯定的,有可能。
例如,如果异常类需要将一个大对象初始化为字段,但没有足够的内存来分配它,您将得到一个异常对象,该对象会抛出OutOfMemoryException.
异常与任何其他类一样,本身也可以引发异常。语言中没有任何内容不允许这样做。
然而,我想说,从异常类中抛出异常是一种不好的做法,通常应该避免。
更新:(以下更新的问题)
如果您在块中实例化异常对象try,catch则会捕获它(假设它捕获适当类型的异常)。如果您在块中实例化它catch,您可能希望在嵌套中执行此操作try{}catch{}- 这对于在 catch 块中使用的可能引发异常的代码来说是很正常的。
正如其他人所说 - 一些异常不应该被捕获(例如OutOfMemory或意外StackOverflow),因为你没有办法处理它们。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |