如何将 System.Exception 转换为 FaultException

本文关键字:转换 FaultException Exception System | 更新日期: 2023-09-27 18:33:55

我有以下异步调用的方法。我想知道如何将System Exception(我在SQL操作过程中可能遇到的)转换为FaultException

这是方法:

public List<Product> GetProductDetails(int productKey)
{
    try
    {
        using (SqlConnection con = new SqlConnection(_connectionString))
        {
            SqlCommand cmd = new SqlCommand("usp_Get_ProductDetails", con);
            ........
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    ......
                }
            }
        }
    }
    catch(Exception ex) 
    {
        //How can I convert this Exception ex into FaultException and then throw to client?
        //throw new FaultException(new FaultReason(new FaultReasonText()), new FaultCode());
    }
}

如何将 System.Exception 转换为 FaultException

您可以捕获多个异常(事实上,如果给定异常合理地可能发生,则这样做是一种很好的做法),然后对每个异常执行一些操作。

例如:

try
{
    using (SqlConnection con = new SqlConnection(_connectionString))
    {
        SqlCommand cmd = new SqlCommand("usp_Get_ProductDetails", con);
        .....
    }
}
catch(FaultException faultEx)
{
    // code to send to client
}
catch(Exception ex) 
{
    // code to do something else
}
catch(Exception ex) 
{
    throw new FaultException(ex.Message);
}