这是异常处理的一个例子吗?
try{
...
} catch (InterruptedException e) {
System.out.println("Item "+id+": interrupted!");
}
什么时候可能发生?我的意思是我应该如何触发异常?
多谢
这是异常处理的一个例子吗?
try{
...
} catch (InterruptedException e) {
System.out.println("Item "+id+": interrupted!");
}
什么时候可能发生?我的意思是我应该如何触发异常?
多谢
是的 - 那是异常处理。您已经捕获了异常并在那里对其进行了处理,而不是将其传递回调用树。
如果您想忽略异常(小心)、记录异常或使用附加信息包装异常,您可以这样做。
异常不会像抛出那样被触发- 例如
if (variable==null){
throw new NullPointerException("Variable cannot be null!");
}
我建议你看一下关于异常的 Java 教程
这里只是说明你不应该忘记 finally 子句。finally 子句是放置要运行的代码的地方,无论是否抛出和捕获异常(例如,清理代码)。
异常处理意味着您正在处理在正常执行代码时可能出错的东西。您会注意到某些方法“抛出”异常。这意味着他们会立即告诉您某些事情可能会在那里出错,因此他们会让您在代码中准备如何处理该问题。
一个例子是使用 FileIO 读取/写入文件。在该操作中可能会出现一堆问题(都不是你的错)。文件的路径可能无效,也许操作系统已将其锁定并且当前对您不可用等。因此,您的应用程序不会崩溃,而是尽可能地管理异常并希望继续前进。
您正在处理的 InterruptedException 主要发生在多线程环境中,此时正在等待或休眠或以某种方式暂停的踏板被中断。这完全取决于您要如何处理它。尽管不建议这样做,但在某些情况下会捕获并忽略异常。根据您的用例,您管理异常的方式需要对您的应用有意义。
是的。请注意在尝试/捕获之间保持清晰。当抛出异常时,您应该了解发生的位置和原因。用 try/catch 包围意味着“我正在做一些“冒险”的事情,如果发生错误,这就是原因”。
关于 wiki 的更多内容:http ://en.wikipedia.org/wiki/Exception_handling