我有一个关于如何设计错误处理的通用问题。我想在我的代码中使用一些第三方服务。通常我将服务包装在客户端类中。然后我的其余代码只处理我的客户端类,对真正的服务视而不见。我的客户端类有一些记录错误的机制。但它不想捕获和处理服务中的任何异常。理想情况下,它应该忽略异常处理并让异常传播到外部。但是,如果我想记录异常,我必须这样做:
try{
.... // call 3rd party service;
}catch(Exception e){ // e is triggered from the service;
Log.error("Oops, an error: " + e); // shall I log the exception??
throw e; // don't swallow the exception;
}
一方面,我不想这样做。我可以忽略异常的处理和记录。让我的客户端类的调用者处理异常或记录错误。问题是,什么时候应该记录异常,什么时候不应该记录?我想听听一些常见的做法和原则。谢谢你。