我必须在学校创建一个计算器应用程序并且计算器工作正常,但现在我必须创建一个异常,当用户输入字符串而不是整数值时显示用户友好消息。
这是我现在拥有的带有 JFrame 和所有内容的代码:
private void minActionPerformed(java.awt.event.ActionEvent evt) {
String invoerEen = getalEen.getText();
int invoerEenDef = Integer.parseInt(invoerEen);
String invoerTwee = getalTwee.getText();
int invoerTweeDef = Integer.parseInt(invoerTwee);
int resultaatDef = invoerEenDef - invoerTweeDef;
resultaat.setText(Integer.toString(resultaatDef));
}
private void plusActionPerformed(java.awt.event.ActionEvent evt) {
String invoerEen = getalEen.getText();
int invoerEenDef = Integer.parseInt(invoerEen);
String invoerTwee = getalTwee.getText();
int invoerTweeDef = Integer.parseInt(invoerTwee);
int resultaatDef = invoerEenDef + invoerTweeDef;
resultaat.setText(Integer.toString(resultaatDef));
}
private void keerActionPerformed(java.awt.event.ActionEvent evt) {
String invoerEen = getalEen.getText();
int invoerEenDef = Integer.parseInt(invoerEen);
String invoerTwee = getalTwee.getText();
int invoerTweeDef = Integer.parseInt(invoerTwee);
int resultaatDef = invoerEenDef * invoerTweeDef;
resultaat.setText(Integer.toString(resultaatDef));
}
private void delenActionPerformed(java.awt.event.ActionEvent evt) {
String invoerEen = getalEen.getText();
int invoerEenDef = Integer.parseInt(invoerEen);
String invoerTwee = getalTwee.getText();
int invoerTweeDef = Integer.parseInt(invoerTwee);
int resultaatDef = invoerEenDef / invoerTweeDef;
resultaat.setText(Integer.toString(resultaatDef));
}
此代码包含所有事件及其执行的操作(第一个用于减法等...)。我使用 Netbeans 作为我的开发环境,我试过像这样添加 try 和 catch 语句:
try {
String invoerEen = getalEen.getText();
int invoerEenDef = Integer.parseInt(invoerEen);
String invoerTwee = getalTwee.getText();
int invoerTweeDef = Integer.parseInt(invoerTwee);
int resultaatDef = invoerEenDef - invoerTweeDef;
resultaat.setText(Integer.toString(resultaatDef));
}
catch(/* what do I put here? */) {
// what do I do here?
}
所以我的问题是,当用户输入的值不是正确的返回类型(必需:整数,找到:字符串)时,我该如何创建异常。
double 或其他返回类型目前并不重要,只有字符串。
提前致谢!
最佳答案
要在输入字符串时进行捕捉(空白文本也算在内),请使用 NumberFormatException :
catch (NumberFormatException n) {
System.out.println("Please enter a number.");
}
要捕捉任何错误,使用Exception :
catch (Exception e) {
System.out.println("Error.");
}
您可以将它们结合起来以捕获不同的错误,以便您可以分别处理它们。例如:
try
{
String s = "hi";
int i = Integer.parseInt(s); // will go into NumberFormatException n
s = s.substring(-2); // will go into Exception e
}
catch (NumberFormatException n) {
System.out.println("Please enter a number.");
}
catch (Exception e) {
System.out.println("Unspecified error (not a NumberFormatException).");
}
关于java - 当输入字符串而不是整数时创建 Java 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20411196/