异常处理java..explanation请帮忙

时间:2012-05-30 22:10:34

标签: java

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

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

什么时候会发生? 我是说如何触发异常?

非常感谢

4 个答案:

答案 0 :(得分:1)

是的 - 这是异常处理。你已经捕获了Exception并在那里完成了一些事情,而不是将它传递回调用树。

如果你想忽略Exception(注意),记录Exception或用其他信息包装Exception,你可以这样做。

异常不是触发而是抛出 - 例如

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

我建议你看一下Java tutorial on exceptions

答案 1 :(得分:0)

异常处理意味着您正在处理在正常执行代码时可能出错的内容。您会注意到某些方法“抛出”异常。这意味着他们立即告诉你,某些事情可能会出现问题,所以他们会让你在代码中准备如何处理它。

其中一个例子就是使用FileIO来读/写文件。可能有一堆东西在那个操作中出错(没有一个是你的错)。该文件的路径可能无效,可能是操作系统已将其锁定,并且当前无法使用,等等。因此,您可以尽可能地管理异常并希望继续使用,而不是您的应用程序崩溃。

你正在处理的InterruptedException主要发生在多线程环境中,当一个等待或睡眠或暂停的步骤被中断时。它完全取决于你如何处理它。如果不推荐,则会出现异常被捕获并被忽略的情况。根据您的使用案例,您管理例外的方式需要对您的应用有意义。

答案 2 :(得分:0)

是的,确实如此。注意在尝试/捕获之间要小心。抛出异常时,您应该了解发生这种情况的原因和原因。 围绕着try / catch意味着“我正在做一些”冒险“,如果发生错误,那就是”。

在wiki上更多:http://en.wikipedia.org/wiki/Exception_handling

答案 3 :(得分:0)

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