收集整个Spring Boot应用程序中的所有异常消息

时间:2019-07-02 08:47:51

标签: java spring spring-boot exception

我正在开发一个spring-boot应用程序,作为要求的一部分,我需要收集整个应用程序中的所有Exception消息,并将这些详细信息作为电子邮件发送。

spring中是否有实现此目标的方法?我打算写一个服务来保存所有异常消息的集合。这是正确的方法吗?

作为开发的一部分,我编写了以下代码以实现目标。

public class Error {        
    private String message;     
    public Error(String message) {
        this.message = message;
    }       
    //getters //setters   
}

public interface ErrorService {
    void addError(final Error error);
    List<Error> getAll();
}

@Service
public class ExceptionMessageServiceImpl implements ExceptionService {
    private List<Error> errors = new ArrayList<Error>();        
    public void addError(final Error error) {
        errors.addError(error);
    }       
    public List<Error> getAll() {
        return errors;
    }
}

public class ReportUtil {
@Autowired
ErrorService errorService;
public void generateReport() {              
        try {
            // report logic process goes here
        }catch(Exception1 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }catch(Exception2 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }           
        // more logic to fallow         
        try {
            // more batch logic process goes here
        }catch(Exception1 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }catch(Exception2 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }       
        //......
        //.......       
    }
}

public class BatchUtil {
@Autowired
ErrorService errorService;    
public void processBatch() {            
        try {
            // batch logic process goes here
        }catch(Exception1 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }catch(Exception2 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }           
        // more logic to fallow         
        try {
            // more batch logic process goes here
        }catch(Exception1 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }catch(Exception2 e) {
            errorService.addError(new Error(e.getMessage+"some custom error message");
        }           
        //......
        //.......
    }
}

从上面的代码可以看出,List<Error>需要被捕获并通过电子邮件发送。

请告知。

0 个答案:

没有答案