gpt4 book ai didi

spring - Spring ExceptionHandler 如何处理运行时异常

转载 作者:行者123 更新时间:2023-12-03 21:40:23 27 4
gpt4 key购买 nike

我正在使用 spring 的 @ControllerAdvice 和 @ExceptionHandler 进行异常处理。任何方法都会从 Controller 中抛出自定义异常,并由相应的 @ExceptionHandler 处理它。如果发生运行时异常(例如任何 HibernateException),那么它会抛出运行时异常,我没有任何用于运行时异常的@ExceptionHandler。

我的问题是如何处理任何运行时异常?我是否需要为 Controller 抛出的每个异常添加@ExceptionHandler?我不想为 Exception.class 创建一个 Generic ExceptionHandler,因为我必须根据发生的异常发送不同的错误代码。

一种方法是在 Controller 中添加 try catch block ,然后从 catch block 中抛出自定义异常?或者还有其他更好的方法吗?

所有@ExceptionHandlers 都在@ControllerAdvice 类中。

最佳答案

替代方法是不要在 Controller 中捕获 Exception。捕获 service 层中的所有 Exception 并抛出自定义异常,例如。如果您保存记录失败,则抛出 DatabaseException 消息。见下面的方法:

Student persist(Student object){
try{
studentDao.insert(object);
}catch(HibernateException e){
throw new DatabaseException("database operation failed!");
}
return student;
}

您可以从您的异常处理程序方法中获取消息。这样你就可以在不同的异常上设置不同的消息。

关于spring - Spring ExceptionHandler 如何处理运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917245/

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