java - Java Exception 产生编译器错误,但是替换异常类型不会产生编译器错误
问题描述
大家好,我有这段异常处理代码,来自Boyarski 和 Selikoff的Java OCA SE 8认证书。我不了解代码的 1 个细节和 1 个变体:
try {
throw new RuntimeException();
} catch (RuntimeException e) {
29: throw new RuntimeException();
} finally {
31: throw new Exception();
}
照原样,编译器发出此消息:
error: unreported exception Exception; must be caught or declared to be thrown
throw new Exception();
另一方面,如果我删除第 31 行,一切顺利。所以,我的第一个问题是:为什么第 29 行,一个未捕获的异常(我认为)对编译器来说是可以的?是不是因为RuntimeException()
之前已经被抓到了?
第二个问题是:如果我将第 31 行替换为
throw new RuntimeException();
一切顺利。但为什么 ?try/catch
我在街区内没有任何东西finally
。
欢迎任何帮助回答这两个问题。
谢谢你。
解决方案
推荐阅读
- r - 在 R 中多次应用简单的数学而不使用 for 循环
- r - 错误:尝试在 text2vec 中应用非函数
- html - 在 HTML 中正确显示存储在数据库中的带有标记的文本
- javascript - 如何正确模拟减速器中的函数
- python - 计算浮点数以在 Python 中找到整数
- node.js - 松露:运行承诺功能时出现“无效或意外的令牌”
- asp.net-mvc - 我在 System.web.mvc 中找不到 TempData
- spring-boot - 由于依赖关系,Google Api 日历和 Spring Boot 无法正常工作
- woocommerce - 如果我使用 woocommerce_wp_text_input(),我必须检查数据验证吗?
- java - Spring Boot, implement login with encoded password