SoapException 類別

定義

表示例外狀況,在經由 SOAP 呼叫 XML Web Service 方法而發生例外狀況時擲回。

public ref class SoapException : SystemException
public class SoapException : SystemException
[System.Serializable]
public class SoapException : SystemException
type SoapException = class
    inherit SystemException
[<System.Serializable>]
type SoapException = class
    inherit SystemException
Public Class SoapException
Inherits SystemException
繼承
衍生
屬性

範例

下列範例會擲回 SoapException ,其中 XML Web 服務方法會設定 Detail 屬性。

<%@ WebService Language="C#" class="ThrowSoapException"%>

using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
using System.Xml;

public class ThrowSoapException : WebService 
{
//    This XML Web service method generates a SOAP Client Fault code 
    [WebMethod]
    public void myThrow(){

        // Build the detail element of the SOAP fault.
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
        System.Xml.XmlNode node = doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);


        // Build specific details for the SoapException.
        // Add first child of detail XML element.
        System.Xml.XmlNode details = doc.CreateNode(XmlNodeType.Element, "mySpecialInfo1", "http://tempuri.org/");
        System.Xml.XmlNode detailsChild = doc.CreateNode(XmlNodeType.Element, "childOfSpecialInfo", "http://tempuri.org/");
        details.AppendChild(detailsChild);

            
        // Add second child of detail XML element with an attribute.
        System.Xml.XmlNode details2 = doc.CreateNode(XmlNodeType.Element, "mySpecialInfo2", "http://tempuri.org/");
        XmlAttribute attr = doc.CreateAttribute("t", "attrName", "http://tempuri.org/");
        attr.Value = "attrValue";
        details2.Attributes.Append(attr);

        // Append the two child elements to the detail node.
        node.AppendChild(details);
        node.AppendChild(details2);

            
        //Throw the exception.    
        SoapException se = new SoapException("Fault occurred", SoapException.ClientFaultCode,Context.Request.Url.AbsoluteUri,node);

        throw se;
        return;    }
}
<%@ WebService Language="VB" class="ThrowSoapException"%>

Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Xml

Public Class ThrowSoapException
    Inherits WebService
    
    ' This XML Web service method generates a SOAP Client Fault code 
    <WebMethod()> _
    Public Sub myThrow()
        
        ' Build the detail element of the SOAP fault.
        Dim doc As New System.Xml.XmlDocument()
        Dim node As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            SoapException.DetailElementName.Name, _
            SoapException.DetailElementName.Namespace)
 
        ' Build specific details for the SoapException.
        ' Add first child of detail XML element.
        Dim details As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo1", "http://tempuri.org/")

        ' Add second child of detail XML element with an attribute.
        Dim details2 As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo2", "http://tempuri.org/")
        Dim attr As XmlAttribute = doc.CreateAttribute("t", "attrName", _
            "http://tempuri.org/")
        attr.Value = "attrValue"
        details2.Attributes.Append(attr)

        ' Append the two child elements to the detail node.
        node.AppendChild(details)
        node.AppendChild(details2)
                
        'Throw the exception    
        Dim se As New SoapException("Fault occurred", SoapException.ClientFaultCode, _
                                    Context.Request.Url.AbsoluteUri, node)
        Throw se
        Return
    End Sub
End Class

備註

SoapException可由 Common Language Runtime 或 XML Web 服務方法擲回。 如果對要求的回應未正確格式化,Common Language Runtime 可能會擲 SoapException 回 。 XML Web 服務方法只要在 XML Web 服務方法內擲回例外狀況即可產生 SoapException 。 如果用戶端透過 SOAP 存取方法,則會在伺服器上攔截例外狀況,並包裝在新的 SoapException 內。 擲 SoapException 回的 具有下列屬性值:

屬性
Message Message原始例外狀況的 屬性。
Code ServerFaultCode.
Actor XML Web 服務方法的 URL。
Detail null,但錯誤元素中存在空的詳細資料元素。

當用戶端使用 SOAP 呼叫時,XML Web 服務方法可能會擲回 SoapException 。 如果 XML Web 服務擲回 SoapException ,則可以透過 Actor 新增其他詳細資料, Code 如果 Detail 擲回另一種例外狀況類型,則無法由 XML Web 服務方法設定的屬性。

建構函式

SoapException()

初始化 SoapException 類別的新執行個體。

SoapException(SerializationInfo, StreamingContext)

使用序列化資料,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName)

初始化 SoapException 類別的新執行個體,含指定的例外狀況訊息和例外狀況碼。

SoapException(String, XmlQualifiedName, Exception)

使用指定的例外狀況訊息、例外狀況代碼和例外狀況根本原因的參考,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, SoapFaultSubCode)

使用指定的例外狀況訊息、例外狀況代碼和子代碼,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String)

使用指定的例外狀況訊息、例外狀況代碼和 URI (能識別造成例外狀況的程式碼片段),初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String, Exception)

使用指定的例外狀況訊息、例外狀況代碼、URI (能識別造成例外狀況的程式碼) 和例外狀況根本原因的參考,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String, String, String, XmlNode, SoapFaultSubCode, Exception)

使用指定的例外狀況訊息、例外狀況代碼、識別造成例外狀況之程式碼片段的 URI、表示處理 SOAP 訊息之 XML Web 服務函式的 URI、與例外狀況關聯的人類語言、應用程式特定的例外狀況資訊、SOAP 錯誤的子代碼,以及例外狀況的根本原因參考,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String, String, XmlNode, SoapFaultSubCode, Exception)

使用指定的例外狀況訊息、例外狀況代碼、識別造成例外狀況之程式碼片段的 URI、應用程式特定的例外狀況資訊,以及例外狀況的根本原因參考,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String, XmlNode)

使用指定的例外狀況訊息、例外狀況代碼、URI (能識別造成例外狀況的程式碼片段) 和應用程式特定的例外狀況資訊,初始化 SoapException 類別的新執行個體。

SoapException(String, XmlQualifiedName, String, XmlNode, Exception)

使用指定的例外狀況訊息、例外狀況代碼、識別造成例外狀況之程式碼片段的 URI、應用程式特定的例外狀況資訊,以及例外狀況的根本原因參考,初始化 SoapException 類別的新執行個體。

欄位

ClientFaultCode

指定 SOAP 錯誤碼,表示未正確格式化或未包含適當資訊的用戶端呼叫。

DetailElementName

取得 XmlQualifiedName,表示 SOAP 錯誤碼的 Detail 項目。

MustUnderstandFaultCode

SOAP 錯誤碼 (表示標記有 MustUnderstand 屬性的 SOAP 項目) 未經處理。

ServerFaultCode

指定表示在伺服器上處理用戶端呼叫期間發生之錯誤的 SOAP 錯誤碼,其中問題不在於訊息內容。

VersionMismatchFaultCode

SOAP 錯誤碼,表示在 SOAP 訊息處理期間,找到 SOAP 信封的無效命名空間。

屬性

Actor

取得造成例外狀況的程式碼部分。

Code

取得 SOAP 錯誤碼的類型。

Data

取得鍵值組的集合,這些鍵值組會提供關於例外狀況的其他使用者定義資訊。

(繼承來源 Exception)
Detail

取得 XmlNode,表示應用程式特定的錯誤資訊明細。

HelpLink

取得或設定與這個例外狀況相關聯的說明檔連結。

(繼承來源 Exception)
HResult

取得或設定 HRESULT,它是指派給特定例外狀況的編碼數值。

(繼承來源 Exception)
InnerException

取得造成目前例外狀況的 Exception 執行個體。

(繼承來源 Exception)
Lang

取得與這個例外狀況相關聯的人類語言。

Message

取得描述目前例外狀況的訊息。

(繼承來源 Exception)
Node

取得 URI,表示造成例外狀況的程式碼片段。

Role

取得 URI,表示處理 SOAP 訊息的 XML Web Service 的功能。

Source

取得或設定造成錯誤的應用程式或物件的名稱。

(繼承來源 Exception)
StackTrace

取得呼叫堆疊上即時運算框架的字串表示。

(繼承來源 Exception)
SubCode

取得包含在 SOAP 錯誤的 subcode XML 項目中的選擇性錯誤資訊。

TargetSite

取得擲回目前例外狀況的方法。

(繼承來源 Exception)

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetBaseException()

在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 Exception

(繼承來源 Exception)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetObjectData(SerializationInfo, StreamingContext)

使用例外狀況的相關資訊來設定 SerializationInfo

GetObjectData(SerializationInfo, StreamingContext)
已淘汰.

在衍生類別中覆寫時,使用例外狀況的資訊設定 SerializationInfo

(繼承來源 Exception)
GetType()

取得目前執行個體的執行階段類型。

(繼承來源 Exception)
IsClientFaultCode(XmlQualifiedName)

傳回值,指出 SOAP 錯誤碼是否相當於 Client SOAP 錯誤碼,而不論所使用的 SOAP 通訊協定版本。

IsMustUnderstandFaultCode(XmlQualifiedName)

傳回值,指出 SOAP 錯誤碼是否相當於 MustUnderstand,而不論所使用的 SOAP 通訊協定版本。

IsServerFaultCode(XmlQualifiedName)

傳回值,指出 SOAP 錯誤碼是否相當於 Server SOAP 錯誤碼,而不論所使用的 SOAP 通訊協定版本。

IsVersionMismatchFaultCode(XmlQualifiedName)

傳回值,指出 SOAP 錯誤碼是否相當於 VersionMismatch SOAP 錯誤碼,而不論所使用的 SOAP 通訊協定版本。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

建立並傳回目前例外狀況的字串表示。

(繼承來源 Exception)

事件

SerializeObjectState
已淘汰.

當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。

(繼承來源 Exception)

適用於