对第一个代码进行修改使得程序可能抛出两种及以上类型的异常,try- catch-finally语句中用多个catch子句对不同类型的异常进行处理,分析程序在不同情况下的运行结果。
时间: 2024-02-11 19:09:58 浏览: 65
使用try-catch-finally处理异常
好的,以下是修改后的Java程序示例:
```java
import java.util.Scanner;
public class ExceptionExample {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
System.out.print("请输入一个整数:");
int num = Integer.parseInt(input.nextLine());
int result = 10 / num; // 可能抛出ArithmeticException异常
System.out.println("10除以" + num + "的结果是:" + result);
} catch (ArithmeticException e) {
System.out.println("异常类型:ArithmeticException");
System.out.println("异常描述:" + e.getMessage());
} catch (NumberFormatException e) {
System.out.println("异常类型:NumberFormatException");
System.out.println("异常描述:" + e.getMessage());
} finally {
System.out.println("程序执行完毕!");
}
}
}
```
在原有代码的基础上,我们增加了一行代码,计算10除以用户输入的整数,并可能抛出ArithmeticException异常。
在try-catch-finally语句中,我们使用了多个catch子句,分别对可能抛出的ArithmeticException和NumberFormatException异常进行处理。在每个catch块中,输出相应的异常类型和描述信息。
不同情况下程序运行结果如下:
1. 用户输入的是一个非0整数:程序会正常执行完毕,输出10除以用户输入的整数的结果以及“程序执行完毕!”的信息。
2. 用户输入的是0:程序会抛出ArithmeticException异常,进入第一个catch块中,输出异常类型和描述信息,然后执行finally块中的代码,输出“程序执行完毕!”的信息。
3. 用户输入的不是一个整数:程序会抛出NumberFormatException异常,进入第二个catch块中,输出异常类型和描述信息,然后执行finally块中的代码,输出“程序执行完毕!”的信息。
综上所述,通过使用多个catch子句,我们可以对不同类型的异常进行精确的处理,进一步提高程序的健壮性和稳定性。
阅读全文