2012-07-11 2 views
1

클래스 용 애플릿을 만들려고합니다.숙제 예외 처리 문제

두 가지 가능한 사용자 입력 실수를 처리해야합니다. if/else 문으로 0으로 나눗셈을 처리했습니다.

그러나. 사용자가 숫자 대신 문자 나 기호를 넣으려고하면 예외를 처리하려고합니다 ... 그러나 catch 문은 문제를 포착하지 않습니다. 대신 0 else 문으로 나누기를 적용합니다. 보고가 있고 당신은 try 블록 내부에 코드의 나머지 부분을 둘 필요가

/* 
* Curtis Sizemore 
* IT 259 - Intermediate Java 
* Unit 8 
* Working with Applets 
* I attest that this is a product of my own creation. 
* 
*/ 
import java.awt.Container; 
import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 

/** 
* 
* @author Curtis 
*/ 
public class JDivide extends JApplet implements ActionListener 
{ 
JTextField numer = new JTextField(5); 
JTextField denom = new JTextField(5); 
JLabel intro = new JLabel("Please enter two numbers."); 
JLabel num = new JLabel("Numerator: "); 
JLabel den = new JLabel("Denominator: "); 
JLabel result = new JLabel(); 
JButton solve = new JButton("Click Me to Solve!"); 
Container con = getContentPane(); 
double numerator; 
double denominator; 
double quotient; 
String n; 
String d; 
String q; 


@Override 
public void init() 
{ 
    con.setLayout(new FlowLayout()); 
    con.add(intro); 
    con.add(num); 
    con.add(numer); 
    con.add(den); 
    con.add(denom); 
    con.add(solve); 
    con.add(result); 
    solve.addActionListener(this); 
} 

@Override 
public void actionPerformed(ActionEvent e) 
{ 



     n = numer.getText(); 
     d = denom.getText(); 
    try 
     { 
     double numerator = Double.parseDouble(n); 
    double denominator = Double.parseDouble(d); 
     } 
     catch(NumberFormatException x) 
     { 
     result.setText("Numbers Only Please."); 
     } 


     if(denominator==0) 
     { 
     result.setText("Division by 0 is undefined."); 
     } 
     else 
     { 
     double quotient = numerator/denominator; 
     q = Double.toString(quotient); 
     result.setText(q); 
} 
} 

} 
+0

이것은 질문과 관련이 없지만 이것이 데스크톱 프로그램 인 경우 JApplet을 사용하는 이유는 무엇입니까? – LanguagesNamedAfterCofee

답변

2

도울 수 있다면 알려주세요, 그 중 하나 또는 예외를 던져주십시오. 그렇지 않으면이 방법은 숫자가 입력되지 않아도 지수를 계산하려고합니다.

+0

천재! 고맙습니다! –

+0

@Curt : 환영합니다! –