webForumDet fria alternativet

Varför kan inte Eclipse resolva?

Java

2 svar · 454 visningar · startad av swede

Medlem sedan feb. 2004230 inlägg
Frågan#1

Har ett try, catch , finally block som strular.

try {
	Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery("SELECT id, parent, name FROM category WHERE parent IS NULL");
			
	while (rs.next()) {
		Category category = new Category();
		category.setID(rs.getInt("id"));
		category.setParent(rs.getInt("parent"));
		category.setName(rs.getString("name"));
		
		categorys.add(category);
	}
} catch (SQLException e) {
	System.out.println(e.toString());
} finally {
	rs.close();
	stmt.close();
}

Problemet är att Eclipse säger att den inte kan resolva rs och stmt i finally blocket.

Vad har jag missat??

Medlem sedan dec. 20025 483 inlägg
#2

Du måste deklarera dem utanför try. Typ:

Statement stmt = null;
ResultSet rs = null;
try
...
finally {
  if (rs != null) rs.close();
  if (stmt != null) stmt.close();
}
Medlem sedan feb. 2004230 inlägg
#3

Naturligtvis, tack !!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)