簡體   English   中英

在客戶端獲取故障異常

[英]To get Fault exception on client side

我是WCF的新手,正嘗試使用WebHttpBinding綁定構建一個演示WCF項目。

這些項目工作正常,但我始終堅持故障異常的概念。 下面是我用來生成故障異常的代碼,但是在客戶端,我得到的是(400)錯誤的請求錯誤,InnerException為null。 我哪里出問題了?

    public DataTable GetCreativesData(string id,string type)
    {
        try { 
        DataAccess da = new DataAccess();
        string qryStr = @"select * from dbo.tbMyTable";
        if (type != null && type != "")
            qryStr += " WHERE1 type='"+type+"'";
        DataTable dt = da.GetDataTable(qryStr);
        return dt;
        }

       catch (FaultException ex) {
            throw new FaultException("Improper Query");
        }
     }

對於錯誤異常,400錯誤是正確的,因為您是在向用戶指示他們提供的內容可能有問題。

還有就是當你提高沒有內部異常FaultException ,因為一個核心概念FaultException是,它可以跨越技術(互操作性)的內部異常的概念是非常具體的.NET。

如果您確實想傳遞Exception ,則可以使用FaultException ,它允許您指定通用參數,然后將其設置為Exception 然后,您將創建並提出該請求。

要記住的另一個方面是您如何處理錯誤,在代碼中引發了全新的異常。 這意味着變量ex中的所有信息都將丟失。 除非您打算隱藏一些東西,否則可以嘗試一下

catch (FaultException ex) 
{
    throw;
}

此選項采用原始的FaultException並再次引發它,從而保留其中的所有信息。

最后,在您的問題之外,SQL令我感到恐懼-看起來它可能容易受到SQL注入攻擊的攻擊 -您可能需要檢查一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM