【发布时间】:2015-11-03 23:00:14
【问题描述】:
好的,这是我的代码片段:
try
{
res = gfSQL.doSQL("SELECT TIMESTAMP, MSGLEVEL, APPLICATION, STREAM, THREADID, " +
" THREADNAME, REQUESTID, MESSAGE, ID, PROCESSED" +
" FROM GFLOG where PROCESSED = 'N'" +
" ORDER BY TIMESTAMP, ID");
} catch ( SQLException e) {
e.printStackTrace();
System.exit(128);
}
if (! res.first()) { <<<---- FLAGGED STATEMENT
// no data to process
System.err.println("No data found to process\n");
return;
}
现在 java 正在使用“未处理的异常类型 SQLException”标记指示语句(以及之后的每个人)。 gfSQL.doSQL 抛出此异常并定义为:
public ResultSet doSQL(String sqlCommand) 抛出 SQLException {
有趣的是——如果我像这样重复“catch”块:
try
{
res = gfSQL.doSQL("SELECT TIMESTAMP, MSGLEVEL, APPLICATION, STREAM, THREADID, " +
" THREADNAME, REQUESTID, MESSAGE, ID, PROCESSED" +
" FROM GFLOG where PROCESSED = 'N'" +
" ORDER BY TIMESTAMP, ID");
} catch ( SQLException e) {
e.printStackTrace();
System.exit(128);
} catch ( SQLException e) {
e.printStackTrace();
System.exit(128);
}
if (! res.first()) {
// no data to process
没有标记“未处理”错误。 (但是,重复的流行语当然被标记为“无法访问的 catch 块 - SQLException 已被处理”。)
知道为什么 Java 在一个实例中看到了问题,而在另一个实例中没有?还是我错过了什么?
【问题讨论】:
标签: java exception-handling try-catch