(异常的产生)把下面代码补充完整 public class TestThrow{ public static void main(String args[]){ throwException(10); } public static void throwException(int n){ if (n == 0){ //抛出一个 NullPointerException }else{ //抛出一个 ClassCastException //并设定详细信息为“类型转换出错” } } } (异常的产生)把下面代码补充完整 public class TestThrow{ public static void main(String args[]){ throwException(10); } public static void throwException(int n){ if (n == 0){ //抛出一个 NullPointerException }else{ //抛出一个 ClassCastException //并设定详细信息为“类型转换出错” } } }
时间: 2023-05-24 12:05:08 浏览: 95
public class TestThrow{
public static void main(String args[]){
try{
throwException(10);
} catch(NullPointerException e){
System.out.println("发生了NullPointerException异常");
} catch(ClassCastException e){
System.out.println("发生了ClassCastException异常:类型转换出错");
}
}
public static void throwException(int n){
if (n == 0){
throw new NullPointerException("空指针异常");
}else{
throw new ClassCastException("类型转换出错");
}
}
}
相关问题
public class X { public static void main(String [] args) { try { badMethod(); System.out.print("A"); } catch (RuntimeException ex) { System.out.print("B"); } catch (Exception ex1) {
这段代码缺少了 `}`,应该是这样的:
```
public class X {
public static void main(String [] args) {
try {
badMethod();
System.out.print("A");
} catch (RuntimeException ex) {
System.out.print("B");
} catch (Exception ex1) {
System.out.print("C");
} finally {
System.out.print("D");
}
System.out.print("E");
}
public static void badMethod() throws Exception {
throw new Exception();
}
}
```
代码的输出结果是 `BD`,因为在 `badMethod()` 方法中抛出了一个 `Exception` 异常,所以会被 `catch` 块中的 `RuntimeException` 捕获并输出 `B`,然后执行 `finally` 块中的代码输出 `D`,最后输出 `E`。注意,因为异常被捕获了,所以程序不会立即停止,而是会继续执行剩余的代码。
1. class Exp1 extends Exceptionf 2. class Exp2 extends Exp1f 3. public class Test( public static void main(String[] args)( try( throw new Exp2(); ]catch(Exp1 ex)( System.out.println("Exception 1"); ]catch(Exp2 ex) System.out.println("Exception 2"); 编译结果
这段代码存在一些语法错误,我先对其进行修改:
1. 将 Exceptionf 改为 Exception
2. 将 Exp1f 改为 Exp1
修改后的代码如下:
```
class Exp1 extends Exception {
}
class Exp2 extends Exp1 {
}
public class Test {
public static void main(String[] args) {
try {
throw new Exp2();
} catch (Exp1 ex) {
System.out.println("Exception 1");
} catch (Exp2 ex) {
System.out.println("Exception 2");
}
}
}
```
修改后的代码可以成功编译。运行该程序会输出 "Exception 2",因为抛出的是 Exp2 异常,而 Exp2 继承自 Exp1,所以 catch 块中的 Exp1 也能够捕获到该异常。但由于 catch 块的顺序是按照代码中的顺序执行的,因此会先执行 catch (Exp1 ex) 块,输出 "Exception 1",而不是 "Exception 2"。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)