gpt4 book ai didi

java - @ExceptionHandler 不处理抛出的异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:05 25 4
gpt4 key购买 nike

我的 Controller 中有一个方法可以处理应用程序抛出的异常。所以我有一个这样的方法。

@Controller
public class ExceptionController {

@RequestMapping(value="/error")
@ExceptionHandler(value={Exception.class, NullPointerException.class})
public String showError(Exception e, Model model){
return "tiles:error";
}
}

如果它有效,我会尝试在其他方法 Controller 的另一个方法中抛出 NullPointerException:

boolean a = true;
if(a){
throw new NullPointerException();
}

异常被抛出后,它被打印在 JSP 中,但它不会抛出我的 showError() 方法(我在那里设置了一个断点,但它永远不会进入)。 showError() 方法将捕获异常并根据异常类型显示不同的错误页面(尽管现在它总是显示相同的错误页面)。如果我转到 url/error,它会显示错误页面,因此 showError() 方法正常。

我正在使用 Spring 3。

可能是什么问题?

谢谢。

最佳答案

如果您查看日志,您可能会看到:

java.lang.IllegalStateException: Unsupported argument [org.springframework.ui.Model] for @ExceptionHandler method

换句话说,@ExceptionHandler 方法不允许声明 Model 参数(参见 docs )。

删除该参数(无论如何您都不会使用),它应该会按预期工作。

关于java - @ExceptionHandler 不处理抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872120/

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