2011-04-25 3 views
0

JDBC를 통해 Oracle 데이터베이스에 연결하려고합니다. - 이것은 무엇을 의미합니까 예외가 슬로우되지하지만 c가 null 남아 어떤 이유DriverManager.getConnection()은 연결 객체가 아닌 null을 반환합니다.

Connection c = null; 
try { 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    c = DriverManager.getConnection(connURL, userID, password); 
} catch (SQLException se) { 
    System.out.println(se.getMessage()); 
} catch (Exception e) { 
    System.out.println(e.getMessage()); 
} 

: 다음 코드를 사용하십니까?

업데이트 :

우리가 예외지고 있었다 밝혀 - Class not found: "oracle.jdbc.driver.OracleDriver"을 - 우리는 클래스 경로 외부 ODBC 클래스를했다.

+3

예외가 발생하지 않았습니까? 예외가 던져 지지만'getMessage()'가 빈 문자열을 반환한다면? – axtavt

+2

클래스 경로에 ojdbc.jar를 추가하십시오. – GustyWind

+0

메소드에 대한 연결을 얻는 논리를 이동시키고 거기에서 예외를 던져 앞으로 이동하십시오. –

답변

1

예외를 다르게 처리하면 쉽게 발견 될 수 있습니다. 예외 메시지를 인쇄하고 계속 진행하는 것은 거의 불가능합니다. 데이터베이스 연결이 null 일 때 무엇을 할 수 있습니까? 연결을 사용할 수 없다는 예외를 throw하면 데이터베이스에 연결하려는 루틴에 관계없이 잠재적 인 시스템 중단을 경고하고 오류를 기록한 다음 시스템 관리자에게 전자 메일을 보낼 수 있습니다. null을 반환하는 것만으로도 쉽게 문제를 해결할 수 있습니다.

+0

실제로. 그리고 만약 당신이'null'을 리턴하려고한다면'try' 블록 내에'c' (아마 더 좋은 이름을 사용하는) 선언을 넣고 catch 블록을 명시 적으로 리턴하는 것이 낫습니다. –

관련 문제