gpt4 book ai didi

java - 异常处理;试着抓

转载 作者:行者123 更新时间:2023-12-01 17:34:38 25 4
gpt4 key购买 nike

这是我的代码:

class FinallyDemo {
static void myMethod(int n) throws Exception{
try {
switch(n) {
case 1:
System.out.println("1st case");
return;
case 3:
System.out.println("3rd case");
throw new RuntimeException("3!");
case 4:
System.out.println("4th case");
throw new Exception("4!");
case 2:
System.out.println("2nd case");
}
catch (RuntimeException e) {
System.out.print("RuntimeException: ");
System.out.println(e.getMessage());
} finally {
System.out.println("try-block entered.");
}
}

public static void main(String args[]){
for (int i=1; i<=4; i++) {
try {
FinallyDemo.myMethod(i);
} catch (Exception e){
System.out.print("Exception caught: ");
System.out.println(e.getMessage());
}
System.out.println();
}
}
}

现在,它不是这样工作的吗:

如果方法本身有一个 try 和 catch block ,那么我不需要编写

method_name(int n) 抛出异常

在抛出异常的方法中进行try-catch阻塞,会不会阻止在抛出异常的方法中写入“抛出异常”?

最佳答案

在您的示例中,情况 4 抛出异常,而在 catch 中您只是捕获 RuntimeException。由于没有捕获异常,因此您的方法需要声明它抛出异常。如果要为异常添加捕获,则不需要抛出异常。这会起作用。

static void myMethod(int n) {
try {
switch (n) {
case 1:
System.out.println("1st case");
return;
case 3:
System.out.println("3rd case");
throw new RuntimeException("3!");
case 4:
System.out.println("4th case");
throw new Exception("4!");
case 2:
System.out.println("2nd case");
}
} catch (RuntimeException e) {
System.out.print("RuntimeException: ");
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.print("Exception: ");
System.out.println(e.getMessage());
}
finally {
System.out.println("try-block entered.");
}
}

关于java - 异常处理;试着抓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com