【发布时间】:2011-08-22 03:37:24
【问题描述】:
我正在尝试跟踪 IO 资源泄漏,其中连接已打开,但不一定关闭:
try{
...
urlConnection.connect();
...
connectionResult.setResultInputStream(urlConnection.getInputStream());
return connectionResult;
} catch (IOException e) {
throw new ValidationException(e, new LocationData(submissionURL.toExternalForm(), -1, -1));
}
有没有办法通过调用层次结构找出ValidationException 的位置?手动步骤类似于:
- 调用包含方法的层次结构
- 对于每个调用者:
- 分析周边代码,找到try catch块
- 如果捕获到异常,则评估流关闭
- 如果没有,请重复 1。
注意事项
- 这是不可重现的;只有一位客户在其故障转移环境中遇到此问题 - 产品版本已有 5 年历史,之前从未出现过此类问题。
- 我可以找到所有抛出异常的情况;我想找到这个特定抛出的异常可能在哪里捕获(包括
catch Exception等)
【问题讨论】: