我的代码的一部分是抛出java.util.concurrent.ExecutionException异常。 我该如何处理?我可以使用throws子句吗?我对java有点新鲜。如何处理java.util.concurrent.ExecutionException异常?
3
A
回答
2
的护理如果你正在寻找处理异常,事情很简单。
public void exceptionFix1() {
try {
//code that throws the exception
} catch (ExecutionException e) {
//what to do when it throws the exception
}
}
public void exceptionFix2() throws ExecutionException {
//code that throws the exception
}
请记住,第二个例子将不得不某处封闭在try-catch
块你的执行层次。
如果您正在修复这个异常,我们将不得不查看更多的代码。
2
您应该调查并处理ExecutionException的原因。
一种可能性,在“Java并发在行动”一书中所描述的,是创造launderThrowable
方法采取展开通用ExecutionExceptions
void launderThrowable (final Throwable ex)
{
if (ex instanceof ExecutionException)
{
Throwable cause = ex.getCause();
if (cause instanceof RuntimeException)
{
// Do not handle RuntimeExceptions
throw cause;
}
if (cause instanceof MyException)
{
// Intelligent handling of MyException
}
...
}
...
}
8
这取决于你的Future
是如何处理它的关键。事实是你永远不应该得到一个。如果您的Future
中执行的代码没有处理,则您只会遇到此异常。
当你catch(ExecutionException e)
你应该能够使用e.getCause()
来确定您的Future
发生了什么。
理想情况下,您的例外不会像这样冒泡到表面,而是直接在您的Future
中处理。
相关问题
- 1. app:transformClassesWithDexForDebug异常和java.util.concurrent.ExecutionException
- 2. 如何处理未处理的异常?
- 3. 如何处理异常处理代码中的异常?
- 4. 如何处理REST异常?
- 5. 如何处理异常
- 6. 如何处理OutOfMemory异常
- 7. 如何处理PDO异常
- 8. 如何处理异常
- 9. 如何处理GORM异常
- 10. 如何处理AllServersUnavailable异常
- 11. 如何处理异常
- 12. 如何处理SharePoint异常?
- 13. 如何处理Hibernate异常?
- 14. 如何处理异常?
- 15. 如何处理异常?
- 16. 如何处理此异常
- 17. kohana如何处理异常
- 18. Task.Status.Faulted - 如何处理异常
- 19. WebKit如何处理异常
- 20. 如何处理此异常?
- 21. 如何处理HttpAsyncClient异常
- 22. 异常处理:多次处理异常
- 23. php异常处理异常
- 24. 异常处理
- 25. 异常处理
- 26. 异常处理
- 27. 异常处理
- 28. 处理异常
- 29. 异常处理
- 30. 处理异常