2012-07-11 53 views
1

我正在嘗試爲類創建一個小程序。作業異常處理問題

我應該處理兩個可能的用戶輸入錯誤。我已經用if/else語句處理零分。

但是,我試圖處理一個異常,如果用戶試圖把字母或符號放入文本框而不是數字....但我的catch語句不會解決問題。相反,它通過0 else聲明來實現除法。請看看,讓我知道如果你可以幫助

/* 
* 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 2012-07-11 00:44:09

回答

2

你需要把你的代碼的其餘部分放在try塊,或者拋出一個異常。否則,即使輸入了非數字,該方法仍然會嘗試計算商。

+0

天才!謝謝! – 2012-07-11 00:38:33

+0

@Curt:不客氣! – 2012-07-11 00:42:10