当前位置: 首页 > 面试题库 >

“最终阻止无法正常完成” Eclipse警告

伍成仁
2023-03-14
问题内容

Eclipse在以下代码中给我该警告:

public int getTicket(int lotteryId, String player) {
    try {
        c = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database, this.user, this.password); 
        int ticketNumber;

        PreparedStatement p = c.prepareStatement(
                "SELECT max(num_ticket) " +
                "FROM loteria_tickets " +
                "WHERE id_loteria = ?"
                );
        p.setInt(1, lotteryId);
        ResultSet rs = p.executeQuery();
        if (rs.next()) {
            ticketNumber = rs.getInt(1);
        } else {
            ticketNumber = -1;
        }

        ticketNumber++;

        p = c.prepareStatement(
                "INSERT INTO loteria_tickets " +
                "VALUES (?,?,?,?)");
        p.setInt(1, lotteryId);
        p.setInt(2, ticketNumber);
        p.setString(3, player);
        p.setDate(4, new java.sql.Date((new java.util.Date()).getTime()));
        p.executeUpdate();

        return ticketNumber;
    } catch (Exception e) {
        e.printStackTrace();
    } finally { 
        if (c != null) {
            try {
                c.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return -1;
    }
}

我的代码有什么问题?


问题答案:

从中删除return语句。最终块被认为是清除块,通常不希望在其中返回。



 类似资料:
  • 问题内容: 我已经下载,解压缩并使用一些插件(值得注意的,EPIC,Clearcase,QuantumDB,MisterQ)设置了Eclipse 3.4.2。 现在,我在编辑Java项目时发现代码完成无法正常工作。如果我键入并按,则弹出窗口将显示“无默认提案”,底部的状态栏将显示“无可用完成”。 问题答案: 尝试还原 中的默认选项 你在此首选项屏幕中看到的数据类型的示例,但是不一定是你当前拥有的数

  • 问题内容: 我从我的ant脚本中调用javac,如下所示: 但是它仍然在输出中引发编译器警告: 我也试过 和 但这也不起作用。如何删除警告? 问题答案: 将选项添加到命令行对我有用。

  • 问题内容: 我想在finally块中关闭流,但是它抛出一个,因此看来我必须在块中嵌套另一个块才能关闭流。这是正确的方法吗?似乎有点笨拙。 这是代码: 问题答案: 似乎有点笨拙。 它是。至少java7尝试使用资源可以解决该问题。 在java7之前,您可以创建一个吞咽它的函数: 或将try …最终放入try catch中: 它比较冗长,并且finally中的异常会在try中隐藏一个,但从语义上讲它更接

  • 问题内容: 下面是有趣的代码: 可以请人解释一下,什么结果将返回这两个函数并解释原因,即描述执行的顺序 问题答案: 从Python文档 无论是否发生异常,finally子句始终在离开try语句之前执行。如果try子句中发生了异常且未由except子句处理(或在except或else子句中发生),则在执行finally子句后重新引发该异常。 当try语句的任何其他子句通过break,continue

  • 问题内容: 使用Xcode 6 GM种子,我的代码完成已停止工作。前几天在工作。我试图让轻松的工作正常进行。我制作了一个Objc头文件,并将其分配为Swift类的头。 至此,我获得了一个Objective-c项目的代码完成。但是,不是Swift项目。 我尝试重新启动Xcode,制作一个新的空项目。 问题答案: 只需进入并 删除 文件夹的数据(派生数据),然后 重新启动 Xcode。

  • 在 中,尝试捕获最终阻止的工作原理是什么? 所以如果有例外,我知道它会跳到捕获块,然后跳到最后的块。 但是如果没有错误,catch块不会运行,但是finally块会运行吗?