2010-08-18 5 views
2

나는 기본적으로 이중을 보유 할 Swing JTextBox을 가지고 있습니다. Double.parseDouble()이 유효하지 않은 입력을 취득 할 때마다Double.parseDouble()을 사용하여 자바 텍스트 상자 유효성 검사

Double.parseDouble(this.myTB.getText()); 

예외가 발생합니다 (따라서 프로그램이 종료됩니다) :

내가 사용하는 것을 찾을 수 있습니다.

내 질문 : 예외를 throw하지 않고 대신 parseDouble()이 실패했다는 것을 나타내는 (-1)을 반환하는 쉬운 방법이 있습니까?

나는 사용자의 데이터 필드가 유효하지 않다는 메시지를 표시하려고합니다.

감사


편집 :

감사 롤. 예외를 잡는 것을 어떻게 잊을 수 있습니까? 긴 날 이었어!

답변

7

가장 좋은 방법은 try/catch 블록을 사용하는 것입니다.

try { 
    return Double.parseDouble(this.myTB.getText()); 
} catch (NumberFormatException e) { 
    JOptionPane.showMessageDialog("Oops"); 
    return -1; 
} 

JOptionPane은 경고 메시지를 사용자에게 표시하는 좋은 방법입니다.

0

NumberFormatException을 잡고 원하는 오류 값을 반환하거나 catch 절 내에서 다른 작업을 수행하십시오.

double value = -1; 
try { 
    value = Double.parseDouble(this.myTB.getText()); 
} catch (NumberFormatException e) { 
    e.printStackTrace(); 
} 
return value; 
+0

감사합니다! 그러나 마치 예외를 잡은 후에도 콘솔 출력에 계속 표시됩니다. 잡힌 후에 예외를 억제 할 여지가 있습니까? –

+0

e.printStackTrace();를 제거하면 예외가 콘솔에 표시되지 않습니다. –

0

사용

try{ 
    return Double.parseDouble(this.myTB.getText()); 
    } catch(NumberFormatException e) { 
     return -1; 
    } 
관련 문제