我在關於拋出新異常的代碼中遇到問題。拋出新的異常
JTextField中的一個我輸入數字0,但它是不正確的,我點擊後「ENTER」在這一刻鈕有拋出新的異常消息:
throw new Exception("Wrong number of express lanes range beginnig!! \n Please enter positive number!");
盒子消息顯示錯誤消息我只能點擊「確定」。點擊「確定」後,我希望程序停止,因爲我想糾正JTextField中的錯誤數據。我不能這樣做,因爲我點擊後,「確定程序繼續處理。我怎樣才能阻止程序和糾正數據? 這裏就是我看到我有一個問題的代碼的重要組成部分。
public class UILayer
{
private JTextField text1, text2, text3, text4, text5, text6;
private void validateNumbers() throws Exception
{
if(!text1.getText().equals("") &&
Integer.parseInt(text1.getText()) <= 0)
throw new Exception("Wrong number of lanes!! \n Please enter positive number!");
if(!text2.getText().equals("") &&
Integer.parseInt(text2.getText()) <= 0)
throw new Exception("Wrong number of express lanes!! \n Please enter positive number!");
if(!text3.getText().equals("") &&
Integer.parseInt(text3.getText()) <= 0)
throw new Exception("Wrong number of express lanes range beginnig!! \n Please enter positive number!");
if(!text4.getText().equals("") &&
Integer.parseInt(text4.getText()) <= 0)
throw new Exception("Wrong number of express lanes range ending!! \n Please enter positive number!");
if(!text5.getText().equals("") &&
Integer.parseInt(text5.getText()) <= 0)
throw new Exception("Wrong number of customers!! \n Please enter positive number!");
if(!text6.getText().equals("") &&
Integer.parseInt(text6.getText()) <= 0)
throw new Exception("Wrong number of max items!! \n Please enter positive number!");
}
protected class EnterClickListener implements ActionListener
{
private SimulationConfig info;
EnterClickListener()
{
info = new SimulationConfig();
}
@Override
public void actionPerformed(ActionEvent event)
{
try
{
if(!(event.getActionCommand().equals(null)))
{
validateForm();
validateNumbers();
}
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "Error.\nPlease enter number.",
"Message", JOptionPane.INFORMATION_MESSAGE);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Error.\n" + e.getMessage() ,
"Message", JOptionPane.INFORMATION_MESSAGE);
}
info.setCustomerRestriction(Integer.parseInt(text5.getText()), Integer.parseInt(text6.getText()));
info.setExpressRange(Integer.parseInt(text3.getText()), Integer.parseInt(text4.getText()));
info.setLanesNum(Integer.parseInt(text1.getText()), Integer.parseInt(text2.getText()));
showProgressBar();
task = blayer.startSimulation(info);
task.addPropertyChangeListener(new PropertyChangeListener());
task.execute();
}
}
BINGO !!!你的建議非常有幫助。謝謝你的電腦。 – user1282256 2013-03-15 04:48:26