这是异常处理的一个例子吗?
try{
...
} catch (InterruptedException e) {
System.out.println("Item "+id+": interrupted!");
}
什么时候会发生? 我是说如何触发异常?
非常感谢
答案 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意味着“我正在做一些”冒险“,如果发生错误,那就是”。
答案 3 :(得分:0)
这里只是说明你不应该忘记finally子句。 finally子句是您放置要运行的代码的地方,无论抛出和捕获异常(例如,清理代码)。