2011-11-03 107 views
0

我正在使用CXF开发web服务。如何处理Apache CXF中的异常

但我想知道什么是处理异常的最佳实践?假设我有一个web服务操作,创建(用户用户)。 传入用户是我的用户域类的一个实例,可以通过调用user.save()

直接由UI团队保存如果save()由于某种原因失败(例如某些网络连接失败或来自用户DTO的一些数据验证错误),最佳实践将如何规定我向客户端提供此例外情况?

我的意思是:哪种类型的异常适合?

此异常是否应包含在操作签名中?

public Response createUser(User user); 

@WebService 
public interface EmpService { 
public Response createUser(User user); 
} 

和客户端应该如何处理这个异常?

+0

你是问异常的细节是否在'response'中?或者抛出一个单独的异常,像这样'public Response createUser(User user)throws MyOwnUserException;' – tamilnad

回答

0

我曾在一家公司工作,拥有近15年的网络服务经验,所以我学到了一些东西。我们只是通过方法中指定的throws声明来处理异常。如果发生了某些预期的错误,我们只是简单地构造了异常并将其与指向某个失败原因的消息一起引发。

客户端应该处理由服务抛出的所有异常,无论如何他喜欢这​​样做。如果你正在开发一个Web服务,你需要担心如何正确地创建一个有适当理由的异常。当发生异常时,客户端将会看到它。