关于java中异常的初学者问题

关于java中异常的初学者问题,java,exception,exception-handling,Java,Exception,Exception Handling,当发生方法无法处理的异常时,程序是否终止并显示错误号?错误号和有关错误的信息来自哪里?程序员在编码时应该知道可能会发生什么样的异常。如果是这样的话,他为什么不确保不发生例外呢? 如果您使用的是Java API,则会记录每个方法抛出的异常 当程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪 检查一下。你在那里可以学到比在这里阅读我的答案多得多的东西:)Java异常冒泡到有人发现它们的时候,或者程序退出的时候。 在现实世界中,当使用许多框架时,异常永远不会出现在顶部。它们被捕获并报告(打印在控

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

如果您使用的是Java API,则会记录每个方法抛出的异常

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


检查一下。你在那里可以学到比在这里阅读我的答案多得多的东西:)

Java异常冒泡到有人发现它们的时候,或者程序退出的时候。 在现实世界中,当使用许多框架时,异常永远不会出现在顶部。它们被捕获并报告(打印在控制台上)。捕获异常由
try{}catch(..{}
块完成


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

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

- checked
- unchecked
未检查的异常进一步分为RuntimeException和Error

运行时异常是程序员错误(ArrayIndexOutOfBoundsException),错误是VM中的问题(OutOfMemoryError)

您不应该捕获运行时异常-您应该修复代码,使其不会引发异常

您不应该捕获错误,因为VM可能处于无法进行任何恢复的状态

如果主服务器未捕获未检查的异常,它将崩溃

程序员在编写代码时是否应该 你知道什么样的例外吗 可能发生

是的,但没有人是完美的


他为什么不保证这个例外呢? 不会发生

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

“他为什么不确保不会发生异常”说起来容易做起来难。