우리가 일반적으로 다음과 같은 패턴을 사용 :자바 폐쇄 연결 및 findbugs 우리의 코드에서
Connection conn;
try{
conn = getConnection();
//Do databasey stuff
}catch(Exceptions that get thrown){
}finally{
try{
conn.close();
}catch(SQLException ex){
logger.error("Failed to cleanup database connection",ex);
}
}
findbugs이 좋아하지 않는다 그러나. conn.close()는 예외를 throw 할 수 있기 때문에 연결이 닫히지 않을 수 있습니다. findbugs가 너무 과장 적이거나 데이터베이스 연결을 종료하는 더 좋은 방법입니다.
편집 : 삭제 된 try catch가 닫힌 상태로 추가되었습니다.
-1 따라서 try catch를 다시 넣으십시오. 간결하게 편집하면 중요하지 않습니다. 코드 검사기에서 포착되지 않은 예외 또는 연결이 닫히지 않을 수있는 문제가 있습니까? –
try catch를 추가했습니다. Findbugs는 conn.close() 도중 예외가 발생하면 연결이 열려 있기 때문에 위의 문제가 있습니다. – Jim
javac가 해당 코드에 대해 불평해야합니다. 만약 당신이 뭔가 잘못하면,'conn'을'null'로 지정하면 잠재적 인 NPE가 생깁니다. –