为什么在我的try块中没有什么可以处理的情况下抛出异常?
当我输入一些字符串类型的内容时,在线程" main"中抛出一个"异常。
java.lang.NumberFormatException:对于输入字符串:" ss""
import java.io.*;
public class Strinput {
public static void main(String args[]) {
String s1 = null, s2 = null, ss, si, sf;
int i1, i2;
float f1, f2;
BufferedReader strin = new BufferedReader(new InputStreamReader(
System.in));
// please ignore the printing language
try {
System.out.print("输入第一个字符串:");
s1 = strin.readLine();
System.out.print("输入第二个字符串:");
s2 = strin.readLine();
} catch (Exception e) {
System.out.println(e.getMessage());
}
i1 = Integer.parseInt(s1);
i2 = Integer.parseInt(s2);
f1 = Float.parseFloat(s1);
f2 = Float.parseFloat(s2);
ss = strAdd(s1, s2);
si = strAdd(i1, i2);
sf = strAdd(f1, f2);
System.out.println("输入的二个字符串相加结果为:" + ss);
System.out.println("输入字符串转换为整数相加结果为:" + si);
System.out.println("输入字符串转换为浮点数相加结果为:" + sf);
}
static String strAdd(String str1, String str2) {
return str1 + str2;
}
static String strAdd(int int1, int int2) {
return String.valueOf(int1 + int2);
}
static String strAdd(float flt1, float flt2) {
return String.valueOf(flt1 + flt2);
}
}
答案 0 :(得分:0)
在你的try / catch之后抛出异常!
这是因为您无法转换字符串值" ss"在s1内变成一个数字。
真正的答案:专注于阅读这些异常消息:它们确切地告诉您问题出在哪里以及导致问题的原因。这一切都在你眼前。除此之外:这样的RuntimeExceptions可以显示在你的代码中的任何地方,它们不仅限于你放下try / catch的地方!
答案 1 :(得分:0)
我想
BufferedReader strin = new BufferedReader(new InputStreamReader(
System.in));
在块try / catch
中