我正在尝试制作一个允许用户输入2个整数(标记)的程序。 如果用户没有输入整数,我正在创建一个try和catch代码。
问题在于,在我尝试输入字母而不是数字之后,出现了一个错误,但程序继续,说我没有通过。在告诉用户他输错了标记后如何让程序停止?
这是我的代码:
public void actionPerformed(ActionEvent e)
try{
myCalculator.setCWK(Integer.parseInt(courseEnter));
myCalculator.setExam(Integer.parseInt(examEnter));
}
catch (Exception a){
System.out.print("System error");
}
displayArea.setText("" + myCalculator.calculateModuleMark());
if(myCalculator.hasPasssed()==true)
{
displayArea.setText(myCalculator.getModuleCode() + "Congratulations! You have PASSED! With a score of " + myCalculator.calculateModuleMark() + "%");
getContentPane().setBackground(Color.green);
}
else
{
displayArea.setText("I am sorry");
getContentPane().setBackground(Color.red);
}
}
答案 0 :(得分:0)
打印出错误后,只需输入return
。
答案 1 :(得分:0)
如果您希望程序在某个语句后“停止”,System.exit(0)
就是您的朋友。所以,在你的catch语句中,你可以拥有
catch (Exception a){
System.out.print("System error");
System.exit(0);
}
请注意,这与return
不同,因为System.exit(0)
将完全停止您的程序流程,而不仅仅是此特定方法。
答案 2 :(得分:0)
try...catch
块意味着
如果try
指令块发生错误,执行catch
指令块
在您的情况下,您没有退出catch
区块中的该功能,因此它会继续。
答案 3 :(得分:0)
异常处理主要是为了防止代码在没有任何错误消息的情况下突然退出。
您可以在System.exit(1)
之后致电System.out.print("System error")
。
注意:System.exit(0)
表示程序按预期终止,而括号内的任何其他错误代码表示存在错误。
所以,现在你的代码将是:
public void actionPerformed(ActionEvent e){
try{
myCalculator.setCWK(Integer.parseInt(courseEnter));
myCalculator.setExam(Integer.parseInt(examEnter));
}
catch (Exception a){
System.out.print("System error");
System.exit(1);
}
displayArea.setText("" + myCalculator.calculateModuleMark());
if(myCalculator.hasPasssed()==true)
{
displayArea.setText(myCalculator.getModuleCode() + "Congratulations! You have PASSED! With a score of " + myCalculator.calculateModuleMark() + "%");
getContentPane().setBackground(Color.green);
}
else
{
displayArea.setText("I am sorry");
getContentPane().setBackground(Color.red);
}
}