如何解决可以将检查的异常如果由系统抛出由默认处理程序捕获吗?
| 也, 默认处理程序会捕获我们抛出的异常吗?如果是,那么这是否取决于是否检查了异常?解决方法
任何ѭ0都可以被捕获。但是
Error
的子类不打算被用户应用程序代码捕获。它们仍然可以被捕获,但是某些错误甚至可能使应用程序处于错误状态(例如,OutOfMemoryError
)。
, catch块将捕获声明的Throwable类型的任何子类型。例如,“ 3”将处理在try块中引发的任何异常,因为即使RuntimeException(未检查)也是孩子的。
注意,这不会捕获Error实例,因为它们不是异常的子类。如果您真的想一网打尽,可以使用catch (Throwable th)
之类的东西。这是不可取的,因为错误通常表示应用程序无法轻易从其自身恢复的问题。
, 关于已检查/未检查的异常,鲜为人知的事实是:这种区别仅在编译时存在。
如果您通过某种丑陋的技巧设法在未声明要抛出异常的地方抛出了一个已检查异常,那么它将像未检查异常一样处理(即,它将通过必须到达最接近的匹配捕获块)。是的,存在这些技巧。
而且,如果默认情况下按您的意思处理线程默认未捕获的异常处理程序(或每个线程未捕获的异常处理程序),则是的:它们将通过“正常”捕获它们来处理未处理的已检查和未检查的异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。