class Demo{ public static void main(String []s){ int a = 5, b = 0; try{a = a/b;} catch(Exception e){System.out.print(“异常”)} catch(AirthmeticException e){ System.out.print(“算术异常”); } Catch(IndexOutOfBoundsException e){ System.out.print(“越界异常”); } }} 则程序运行结果为( ) A 显示:异常 B 显示:算术异常 C 显示:越界异常 D 编译错误
时间: 2024-03-01 16:53:21 浏览: 124
深入理解Java基础之try-with-resource语法糖
程序存在编译错误,因为 `catch` 块应该按照从小到大的顺序排列(即从子类到父类),因为子类异常会被父类异常所捕获。正确的代码如下:
```java
class Demo{
public static void main(String []s){
int a = 5, b = 0;
try {
a = a/b;
} catch (ArithmeticException e) {
System.out.print("算术异常");
} catch (IndexOutOfBoundsException e) {
System.out.print("越界异常");
} catch (Exception e) {
System.out.print("异常");
}
}
}
```
运行结果为 B:显示“算术异常”,因为程序在执行 `a = a/b` 时会抛出除数为零的算术异常,被第一个 `catch` 块所捕获。
阅读全文