咨询一个java异常处理相关问题

请问try块中没做逻辑处理,为什么输入字符串后打印出来是报错的?
//programme name Strinput.java
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));
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);
}
}

BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
放到try里面

首先,你要看看堆栈错误信息是什么呢?哪一个调用方法走入了异常分支了,用e.printStack()打印堆栈信息。我这里正确运行了,没有报错,你是不是输入了非数字字符串了呢?正常你题目要求输入的是数字的呢。我这里的运行结果

 输入第一个字符串:1
输入第二个字符串:2
输入的二个字符串相加结果为:12
输入字符串转换为整数相加结果为:3
输入字符串转换为浮点数相加结果为:3.0

其次,建议编码学习最开始就应该了解编程规范,遵循类、变量的命名规则,以后如果要从事软件开发行业,早期的编码习惯和规范意识会让你的编程之路顺当不少的。