请解释Java中的RuntimeException以及它应该在何处使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了请解释Java中的RuntimeException以及它应该在何处使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1675字,纯文字阅读大概需要3分钟。
内容图文
![请解释Java中的RuntimeException以及它应该在何处使用](/upload/InfoBanner/zyjiaocheng/708/cc94fed6660546b3ba100a895177d386.jpg)
我在SO上进行了这个很棒的讨论,标题为:The case against checked exceptions,但是我无法遵循应该使用RuntimeException的地方以及它与普通Exceptions及其子类的不同之处.谷歌搜索给了我一个复杂的答案,也就是说,它应该用于处理编程逻辑错误,并且应该在没有正常情况发生时抛出,例如在switch-case结构的默认块中.
你能否在这里详细解释一下RuntimeException.谢谢.
解决方法:
I am unable to follow where exactly
RuntimeException should be used
这可能是因为你正在寻找一个论点,即人们对这一点的看法不一致.
and
how it is different from normal
Exceptions and its subclasses.
非常简单:检查Exception的所有子类(RuntimeException及其子类除外),即编译器将拒绝您捕获的代码unelss或在方法签名中声明它们.但是,未选中RuntimeException的子类.
Googling gave me a complex answer,
that is, it should be used to deal
with programming logic errors and
should be thrown when no Exception
should normally occur, such as in the
default block of switch-case
construct.
这是传统的智慧,它表示对于程序可以有效处理的所有内容,您应该使用已检查的异常,因为编译器会强制您处理它们.相反,程序通常不能有效地处理程序员错误,因此不必检查它们.这就是Java Standard API使用RuntimeException的方式.
您链接的讨论是由一些人(包括我)认为检查异常会导致错误代码而不应该使用的.由于无法在编译器中禁用异常检查,因此执行此操作的唯一方法是仅使用RuntimeException及其子类.
IMO支持这种观点的一个观察是,“仅针对程序员错误使用未经检查的异常”的传统观点实际上主要是向后推理的合理化:没有代码安全性原因,编译器不应该强迫您处理程序员错误.但是,像NullPointerException和ArrayIndexOutOfBoundsException这样的东西几乎可以在任何地方出现,如果这些被检查过,没有人会想要用Java编程.因此,语言设计者必须为这些做出一个例外,并使它们不受限制.为了解释这一点,他们提出了“未经检查的例程是针对程序员错误”的故事.
内容总结
以上是互联网集市为您收集整理的请解释Java中的RuntimeException以及它应该在何处使用全部内容,希望文章能够帮你解决请解释Java中的RuntimeException以及它应该在何处使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。