2017-02-12 1 views
0

전화 번호 속성으로 입력을 사용하여 이전에 Oracle 10g 데이터베이스에 추가 한 레코드 중에서 단일 환자 레코드의 세부 정보를 검색하려고합니다. 즉, 전화 번호를 사용하여 단일 레코드에 대한 세부 정보를 얻고 싶습니다. 속성.Java 프로젝트의 NumberFormatException

버튼을 클릭하면 NumberFormatException이 표시됩니다. 그 버튼의 actionPerformed은 여기에 있습니다 : 나는 이전 스레드에서 답변을 시도했지만 그들은 도움이되지 않았다

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
     Connection con = null; 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","passw"); 

     String number = jTextField1.getText().trim(); /fetching the input here*/ 

     int phone = Integer.parseInt(number);/*converting string to integer*/ 


     PreparedStatement ps = con.prepareStatement("SELECT * FROM patient WHERE pphone==?"); 

        ps.setInt(1,phone); 

     ResultSet rs=ps.executeQuery(); 
        jLabel16.setText("Fetching details, please wait"); 
        jLabel2.setText(rs.getString("pid")); 
        jLabel3.setText(rs.getString("pname")); 
        jLabel4.setText(rs.getString("page")); 
        jLabel5.setText(rs.getString("psex")); 
        jLabel6.setText(rs.getString("pphone")); 
        jLabel7.setText(rs.getString("paddress")); 
        jLabel8.setText(rs.getString("pfamilymembers")); 
        jLabel16.setText("Details Fetched Successfully"); 
}           
catch(Exception e){ 
showMessageDialog(null, e); 
} 

.

이 예외를 피하거나 처리하려면 어떻게해야합니까?

+0

인쇄의 스택 추적 예외. 그러면 예외가 던져지는 곳과 그 메시지가 무엇인지 알려줍니다. 그런 다음이를 읽고 그에 따라 코드를 수정하십시오. –

+0

@Natarajan이 오류를 던지고있는 행은 무엇입니까? –

+0

여기에서 예외가 발생합니다 ... int phone = Integer.parseInt (number); netbeans의 출력 창에서이 예외를 사용했습니다. 이제 Jframe을 실행할 때 옵션 창 대화 상자에서 예외가 발생합니다. –

답변

0

그래서 당신은 당신이 그것을 피할 수 없다 Long.parseLong("String")

0

를 사용할 수있는 경우 입력 Integer.MAX_VALUE보다 큰 기회가있다. 값은

int phone = Integer.parseInt(number);/*converting string to integer*/ 

당신은/체크 컨텍스트에 전달하기 전에 입력 값을 확인해야 후 마지막 코드에 대한 중요합니다.

int phone = -1 
if (!String.isEmpty(number)) 
    //proceed 
    try { 
     phone = Integer.parseInt(number);/*converting string to integer*/ 
     .... 
    } catch (NumberFormatException e){ 
    throw new Exception("Number is invalid", e); 
    } 
else 
    throw new Exception ("Number is empty"); 
0

코드는 이제 성공적으로 실행은

본인은 "문자열"변수로 대신 사용하는 int JTextField의 값을 전달 "valueOf (INT)"방법

String number = String.valueOf(getText.jTextField1);