一聚教程网:一个值得你收藏的教程网站

热门教程

在WebService中利用SoapException处理业务流程执行的错误-Web_Service

时间:2022-07-02 11:15:56 编辑:袖梨 来源:一聚教程网

在客户端中调用WebService的方法处理业务流程,如果业务处理程序返回错误,一般我们可以利用返回错误码的方式将处理结果返回给客户段,客户段针对不同的错误码进行相应的错误处理,按照这种处理流程有时候客户端可能需要很多重复的代码来响应不同的错误码,一个简单的例子就是,对于不同的错误码,显示不同的错误消息,有些系统中,业务处理的错误消息可能是放在业务数据库中的,在这种情况下,客户段要显示错误消息,还必须要调用相应的Service获取错误消息。
WebService利用SoapException的Detail提供了给客户端返回更详细错误信息、或业务相关信息的能力,例如在一个认证的例子中可以利用下面代码给客户段返回异常,并告知客户错误码和错误消息,以及其他相关信息
private static int Authenticate( CredentialSoapHeader header)
{
int iRet ;
try
{
SqlConnection conn = new SqlConnection(CommonDB.ConnectionString);
SqlCommand cmd = new SqlCommand("P_Employee_Check", conn);
cmd.Parameters.Add("@EmployeeCode", header.Username);
cmd.Parameters.Add("@EmployeePassword", header.Password);
cmd.Parameters.Add("@ReturnValue",-1) ;
cmd.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue ;
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
iRet = Convert.ToInt32(cmd.Parameters["@ReturnValue"].Value) ;
}
catch (Exception ex)
{
iRet = 1000 ;
throw new SoapException(string.Empty, SoapException.ServerFaultCode, "Service",ErrorMessage.CreateSoapExDetail(iRet , "数据库操作产生异常. "+ex.Message));

热门栏目