繁体   English   中英

关于Java异常的初学者问题

[英]beginner question about exception in java

当发生方法无法处理的异常时,程序是否终止并显示错误号? 错误号和错误信息从何而来? 程序员在编码时是否应该知道可能发生哪种异常。 如果是这样,他为什么不确保不会发生异常。

如果使用Java API,则会记录每个方法引发的异常。

程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪。

查看Java教程中有关异常的课程 您可以在这里了解更多信息,而不是在这里阅读我的答案:)

Java中有两种主要的异常类型:

- checked
- unchecked

未检查的异常进一步细分为RuntimeException和Error。

RuntimeExceptions是程序员错误(ArrayIndexOutOfBoundsException),而Errors是VM中的问题(OutOfMemoryError)。

您不应该捕获RuntimeExceptions-您应该修复代码,以便它不会引发异常。

您不应捕获错误,因为VM可能处于无法采取任何措施从错误中恢复的状态。

如果您的主体没有捕获到未经检查的异常,它将崩溃。

Java异常会一直上升到有人抓住它们或程序退出的地步。 在现实世界中,当使用许多框架时,异常永远不会冒出来。 他们被捕获并报告(打印在控制台上)。 捕获异常是通过try { } catch(..) { }块完成的。

异常有两种类型-选中和未选中。 必须在方法签名中声明已检查的异常(与未检查的异常不同)

程序员在编码时是否应该知道可能发生哪种异常

是的,但没有人是完美的。

他为什么不确保不会发生异常

在特殊情况下,您想例外。 您不想忽略该异常。 例如,假设您的程序创建了一个文件来保存用户设置。 如果由于某种原因文件创建失败(您的程序无法控制,这是操作系统的工作),则您不想继续进行,就像什么都没发生一样。 您希望有一个例外,以便任何人或任何调用该函数的函数都知道此问题,并且可以执行某些操作,例如通知用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM