输入字符串而不是整数时创建Java异常
我必须在学校创建一个计算器应用程序,计算器工作正常,但现在我必须创建一个异常,当用户输入字符串而不是整数值时,它会显示一条用户友好的消息 这是我现在用JFrame和所有东西编写的代码:输入字符串而不是整数时创建Java异常,java,swing,exception,netbeans,Java,Swing,Exception,Netbeans,我必须在学校创建一个计算器应用程序,计算器工作正常,但现在我必须创建一个异常,当用户输入字符串而不是整数值时,它会显示一条用户友好的消息 这是我现在用JFrame和所有东西编写的代码: private void minActionPerformed(java.awt.event.ActionEvent evt) { String invoerEen = getalEen.getText(); int invoerEenDef = Integer.parseInt(invoer
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-and-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?
}
所以我的问题是,当用户输入的值不是正确的返回类型时,如何创建一个异常?必需:Integer,found:String
Double或其他返回类型目前并不重要,仅字符串
提前谢谢 使用NumberFormatException。当将字符串转换为数字的方法接收到无法转换的字符串时,会引发该错误。如Integer.parseIntsadfasd 使用NumberFormatException。当将字符串转换为数字的方法接收到无法转换的字符串时,会引发该错误。如Integer.parseIntsadfasd 您可以对一般异常使用NumberFormatException或Exception e,然后打印一条消息,如:Invalid entry
catch (NumberFormatException e) {
System.out.println("Invalid entry, please enter a number");
}
您可以对一般异常使用NumberFormatException或Exception e,然后打印一条消息,如:Invalid entry
catch (NumberFormatException e) {
System.out.println("Invalid entry, please enter a number");
}
若要捕获输入的字符串是否也是空白文本计数,请使用: 要捕获任何错误,请使用: 您可以将它们组合起来捕获不同的错误,以便可以单独处理它们。例如:
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).");
}
若要捕获输入的字符串是否也是空白文本计数,请使用: 要捕获任何错误,请使用: 您可以将它们组合起来捕获不同的错误,以便可以单独处理它们。例如:
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).");
}