java - 如何记录并重新抛出整个类

标签 java spring exception

我正在使用 Spring 。

我有一个具有多种方法的类。在每个方法中我必须写:

public void method1(){
    try{
       //anything
    }
    catch(Exception e){
       Log.error(e);
       throw e;
    }
}
public void method2(){
    try{
       //anything
    }
    catch(Exception e){
       Log.error(e);
       throw e;
    }
}
public void method3(){
    try{
       //anything
    }
    catch(Exception e){
       Log.error(e);
       throw e;
    }
}
public void method4(){
    try{
       //anything
    }
    catch(Exception e){
       Log.error(e);
       throw e;
    }
}

我可以写一些东西而不必在每个方法中都写这个吗?也许是注释?

最佳答案

由于您使用的是 Spring,因此 @ControllerAdvice 对于这种情况将是一个很好的解决方案。

您所要做的就是进行一些配置并像这样定义全局异常处理类

@ControllerAdvice
public class ExceptionControllerAdvice {

    // Handles Custom exceptions. MyException in this case
    @ExceptionHandler(MyException.class)
    public ModelAndView handleMyException(MyException mex) {     
        ModelAndView model = new ModelAndView();
        ...
        return model;
    }

    // Handles all the exceptions
    @ExceptionHandler(Exception.class)
    public ModelAndView handleException(Exception ex) {     
        ModelAndView model = new ModelAndView();
        model.addObject("errMsg", "This is a 'Exception.class' message.");
        ...
        return model;     
    }
}

引用this在 Spring 中配置不同类型的错误处理技术的帖子。

关于java - 如何记录并重新抛出整个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60093246/

相关文章:

java - 使用 Spring Security 'hasPermission()' 在未经授权的 REST 服务请求上返回 JSON

java - 你如何使用 gmail java api 获取 gmail 用户的电子邮件地址?

java - 所有聚类列的总和太长 (65927 > 65535)

java - 为什么在 Spring Security 中永远不会触发事件 AbstractAuthenticationFailureEvent?

java - 为什么Java会出现这个异常?

java - 如何根据单词范围检查输入单词的位置?

java - Spring DateTimeFormat 不适用于 jQuery UI Datepicker

java - 当它不可 Autowiring 时,有选择地将单个过滤器从 Spring Security 应用于 MockMvc

java - 在 Java 中使用 ObjectInputStream 从文件中检索字符串数组?

json - WCF WebFaultException 异常详细信息