public class Tt { public static void main(String[] args) { try { int number = Integer.parseInt("6P"); System.out.println("8"); } catch (NumberFormatException e) { System.out.println("学号请输入整数!"); System.out.println("错误:" + e.getMessage()); } finally { System.out.println("2"); } System.out.println("3"); } }修改以上代码1.3使得程序可能抛出两种及以上类型的异常,try- catch-finally语句中用多个catch子句对不同类型的异常进行处理,分析程序在不同情况下的运行结果。
时间: 2023-06-20 14:03:50 浏览: 52
public class Tt {
public static void main(String[] args) {
try {
int number = Integer.parseInt("6P");
System.out.println("8");
String s = null;
s.charAt(0); // 这里会抛出NullPointerException异常
} catch (NumberFormatException e) {
System.out.println("学号请输入整数!");
System.out.println("错误:" + e.getMessage());
} catch (NullPointerException e) {
System.out.println("出现空指针异常!");
System.out.println("错误:" + e.getMessage());
} catch (Exception e) { // 这里捕获所有的异常类型
System.out.println("出现未知异常!");
System.out.println("错误:" + e.getMessage());
} finally {
System.out.println("2");
}
System.out.println("3");
}
}
运行结果:
学号请输入整数!
错误:For input string: "6P"
2
3
如果将代码中的"6P"修改为整数"6",则运行结果为:
8
出现空指针异常!
错误:null
2
3
如果将代码中的"6P"修改为"abc",则运行结果为:
出现未知异常!
错误:For input string: "abc"
2
3
可以看到,当出现不同类型的异常时,程序可以通过多个catch子句来分别处理各种类型的异常。同时,finally语句块无论是否出现异常都会执行。