当前位置: 首页 > 知识库问答 >
问题:

已处理的SQL异常被标记为未处理

鲜于裕
2023-03-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用'unhandled exception type 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短语被标记为“无法到达的catch块-SQLException已被处理”。)

共有1个答案

谷梁英毅
2023-03-14

那么,gfsql.dosql()可以抛出一个SQLException,您正在捕获它。

但是res.first()也可以抛出一个SQLException,您没有捕获它,因为这个指令不在try块中。这就是为什么会出现编译器错误。

 类似资料:
  • 主要内容:异常处理的语法,引发异常,用户定义的异常,预定义的异常在本章中,我们将讨论和学习PL/SQL中的异常。 程序执行过程中的错误情况是一个例外(异常)。 PL/SQL支持程序员在程序中使用块捕获这些发生错误的条件,并针对错误情况采取适当的措施。PL/SQL中有两种异常 - 系统定义的异常 用户定义的异常 异常处理的语法 异常处理的一般语法如下。在这里,可以列举尽可能多的异常并且指定处理方式。默认的异常将使用处理,如下语法所示 - 示例 下面写一个代码来说

  • 问题内容: 我正在开发一个Android应用,该应用必须将json格式的Java对象保存到SQLite数据库中。我为此操作编写了代码,然后他们必须提取Json对象并将其重新转换为Java对象。当我尝试调用将json对象反序列化为字符串的方法时,我在Android Studio中发现此错误: 当我尝试捕获程序运行但不反序列化json对象时。 这是该方法的代码: 你能帮我吗? 问题答案: 是的,您需要

  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 问题内容: 它在DEBUG = True模式下运行。有时,当遇到错误时,它可能会抛出带有追溯信息的错误消息,但有时,它仅显示以下行: 我必须切换到开发服务器才能查看详细消息。 遇到错误时,如何使它始终显示回溯消息? 问题答案: 也许你可以使用此代码段,这会将异常记录在apache的日志中: 把它放在你的settings.py: 在你的代码中:

  • 我已经浏览了所有相关的帖子,但是我的@Controlller建议似乎没有处理从Controller类抛出的自定义异常。但是@Controller类中的@ExceptionHandler确实处理了异常。我不知道是什么错误。 网状物xml: dispatcher servlet。xml: @控制器建议等级: @ControllerAdvice与控制器位于同一个包中。

  • 问题内容: 我目前正在学习如何正确执行自定义异常的过程,偶然发现了一个问题。每当我尝试利用引发此自定义异常的类的对象时,IDE的调试器(我使用的是IntelliJ想法)都会说“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字<0.5,它将返回一个异常,否则返回一个数字,但不会这样做。我想念什么? -- -- 问题答案: 您是