Java DB函数,可能的返回类型



我与一位同事就以下代码进行了半争论。我认为下面的代码要么返回true(如果成功(,要么返回错误。他坚持认为函数仍然有可能返回false。我不知道怎么做。

然而,在我的生活中,我以前也犯过错误。

那么,代码有可能返回false吗?如果是,如何?

public static boolean saveBRL(BookingReleaseItem bri) throws ClassNotFoundException, SQLException {
//get connection to mysql database
Connection conn = getConnection(); 
//get count of existing items for julian date
int count = getBRICount(conn, bri.getJulian());
String query = "INSERT INTO BookingRL "
+ "(juliann"
+ "serialn"
+ "namen"
+ "sidn"
+ "typen"
+ "frontDeskn"
+ "atrReceivedTimen"
+ "releasingn"
+ "releaseTime) VALUES (?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, bri.getJulian());
ps.setInt(2, ++count);
ps.setString(3, bri.getName());
ps.setString(4, bri.getSid());
ps.setString(5, bri.getType());
ps.setString(6, bri.getFrontDesk());
ps.setString(7, bri.getAtrReceivedTime());
ps.setString(8, bri.getReleasing());
ps.setString(9, bri.getReleaseTime());
ps.executeUpdate();
ps.close();
conn.close();
return true;
}

首先,如果您不打算在相应的情况下返回两个值(true/false(,那么使用布尔函数是一种非常糟糕的做法(但我想您的问题不是这样的:((。

其次,由于您的函数没有使用第二个可能返回错误值的return语句,因此您的同事错了。

我只是猜测您在这里谈论的是不同的代码样式。您的代码不能以任何方式返回false。唯一的可能性(这也是我猜测的(是如果Exceptions不会被抛出,而是在您提供的方法中被捕获。

如果发生异常,则可以返回false。这将是一种不同的编码方式,我会坚持使用在代码库中更常见的方式。如果你所在公司的其他人发现了例外情况,你也应该这样做。

最新更新