你没有指定语言,我不知道语言,所以我一般回答。
你不能那样做。如果您想拥有通用代码,请将其放入 中finally
,或者如果它只需要针对某些捕获案例执行,您可以将该代码复制到相应的案例中。如果代码比较大并且你想避免冗余,你可以把它放到一个自己的函数中。如果这会降低代码的可读性,您可以嵌套 try/catch 块(至少在 Java 和 C++ 中。我不了解您的语言)。这是Java中的示例:
class ThrowingException {
public static void main(String... args) {
try {
try {
throw new RuntimeException();
} catch(RuntimeException e) {
System.out.println("Hi 1, handling RuntimeException..");
throw e;
} finally {
System.out.println("finally 1");
}
} catch(Exception e) {
System.out.println("Hi 2, handling Exception..");
} finally {
System.out.println("finally 2");
}
}
}
这将打印出:
Hi 1, handling RuntimeException..
finally 1
Hi 2, handling Exception..
finally 2
将您的公共代码放入外部 catch 块中。使用嵌套版本还可以处理发生异常的情况,而无需在 catch 块中明确地重新抛出旧的。它可能更适合您想要的东西,但也可能不适合。