-1

这是异常处理的一个例子吗?

try{
  ...
} catch (InterruptedException e) {
  System.out.println("Item "+id+": interrupted!");
}

什么时候可能发生?我的意思是我应该如何触发异常?

多谢

4

4 回答 4

1

是的 - 那是异常处理。您已经捕获了异常并在那里对其进行了处理,而不是将其传递回调用树。

如果您想忽略异常(小心)、记录异常或使用附加信息包装异常,您可以这样做。

异常不会像抛出那样被触发- 例如

if (variable==null){
  throw new NullPointerException("Variable cannot be null!");
}

我建议你看一下关于异常的 Java 教程

于 2012-05-30T22:15:20.897 回答
0

这里只是说明你不应该忘记 finally 子句。finally 子句是放置要运行的代码的地方,无论是否抛出和捕获异常(例如,清理代码)。

于 2012-05-31T00:30:45.517 回答
0

异常处理意味着您正在处理在正常执行代码时可能出错的东西。您会注意到某些方法“抛出”异常。这意味着他们会立即告诉您某些事情可能会在那里出错,因此他们会让您在代码中准备如何处理该问题。

一个例子是使用 FileIO 读取/写入文件。在该操作中可能会出现一堆问题(都不是你的错)。文件的路径可能无效,也许操作系统已将其锁定并且当前对您不可用等。因此,您的应用程序不会崩溃,而是尽可能地管理异常并希望继续前进。

您正在处理的 InterruptedException 主要发生在多线程环境中,此时正在等待或休眠或以某种方式暂停的踏板被中断。这完全取决于您要如何处理它。尽管不建议这样做,但在某些情况下会捕获并忽略异常。根据您的用例,您管理异常的方式需要对您的应用有意义。

于 2012-05-30T22:16:41.663 回答
0

是的。请注意在尝试/捕获之间保持清晰。当抛出异常时,您应该了解发生的位置和原因。用 try/catch 包围意味着“我正在做一些“冒险”的事情,如果发生错误,这就是原因”。

关于 wiki 的更多内容:http ://en.wikipedia.org/wiki/Exception_handling

于 2012-05-30T22:17:28.220 回答