我有一组使用[WebMethod]
属性生成的Web服务。如果其参数未正确指定(且无法使用合理的默认值),从这样的方法中抛出ArgumentException
是否被认为是“良好实践”?如果是,那么是否应该捕获并重新抛出此异常以便在服务器和客户端上记录日志?
我有一组使用[WebMethod]
属性生成的Web服务。如果其参数未正确指定(且无法使用合理的默认值),从这样的方法中抛出ArgumentException
是否被认为是“良好实践”?如果是,那么是否应该捕获并重新抛出此异常以便在服务器和客户端上记录日志?
WebMethod
- 调用者只会收到故障(通常相当晦涩)。可能相关 - 一旦请求通过验证,为了您自己的内部系统状态断言,您还可以使用代码合同来检测内部错误(或可能是缺少早期应该发生的验证)。但是,这些不会传播到客户端。
使用异常和自定义错误代码总是一个难以决定的问题。您应该估计情况有多“特殊”,以及您计划如何在消费者端处理错误。通常在意外情况下(例如重要参数丢失)使用异常,而使用自定义错误代码来处理类似业务的错误。
更新:当然,这仅适用于创建新服务的情况。如果您修改现有服务,则必须知道现有客户端如何使用它以及他们期望的错误代码。