gpt4 book ai didi

java - 如何抛出异常并执行 catch block 中的剩余业务逻辑?

转载 作者:行者123 更新时间:2023-11-30 03:17:05 25 4
gpt4 key购买 nike

我想要在这里破解。我正在尝试的是在抛出异常后执行一些业务逻辑。业务逻辑在 catch block 中定义。我不想将 throw 语句保留在 catch block 的末尾。有什么我可以尝试的技巧吗?我的想法是在该点创建一个线程并在其中抛出异常。我不确定它是否会起作用。请帮帮我。

package demo1.web;

import demo.exceptions.SupportInfoException;

public class TestInnerException {
void testIt() throws Exception{
try{
int i=0;
int j=1/i;
}catch(Exception e){
System.out.println("business logic .. .. . . ");
throw e;
// I want to excute these below line ,
but it is unreachable because you aleready throwing the excetion ..
//any Hacks for it ?
System.out.println("Lines after throwing the exception ... .");

}

System.out.println("I want this logic to be run . . . . .");

}
public static void main(String[] args) throws SupportInfoException, Exception {
TestInnerException t = new TestInnerException();
t.testIt();


}
void testRunTimeEx(){
int i=0;
int j=1/i;

}
}

让我告诉你我的场景,我使用 @ExceptionHandler 注释来处理本文中描述的所有异常。 https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc#user-content-sample-application一些复杂的场景,无法准确解释原因。我在这里想要的是,如果它是由 catch block 处理的,那么我希望在 @ExceptionHandler 中触发它,因为我还有一些其他业务逻辑。问题是除非抛出异常,否则 @ExceptionHandler 不会被触发。我希望它在进入 catch block 时被触发。但如果 catch block 没有抛出任何异常,则不会触发它。

在这种情况下,业务逻辑是指一些日志功能。

最佳答案

这不是黑客,也许没有多大意义。

1) 如果您想抛出某些异常,请立即抛出

2) 如果您想在异常引发时执行一些业务逻辑,请执行此操作,然后抛出异常

但是如果你想抛出并做一些事情,这里没有任何脏代码是不太可能的。我觉得这里有一股代码味道。

question Edit 之后编辑:

虽然是日志记录,但是在抛出之前仍然可以记录日志,抛出之后没有必要生成日志。

关于java - 如何抛出异常并执行 catch block 中的剩余业务逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32307256/

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