webForumDet fria alternativet

Varför kan inte Eclipse resolva?

2 svar · 454 visningar · startad av swede

swedeMedlem sedan feb. 2004227 inlägg
#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??

Peter SMedlem sedan dec. 20025 484 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();
}
swedeMedlem sedan feb. 2004227 inlägg
#3

Naturligtvis, tack !!

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb