共用方式為


SoapException 類別

定義

表示在透過SOAP呼叫 XML Web 服務方法且發生例外狀況時所擲回的例外狀況。

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
繼承
衍生
屬性

範例

下列範例會擲回 XML Web 服務方法設定 Detail 屬性的 SoapException

<%@ 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,則如果擲回另一種類型的例外狀況,則可以透過 ActorCodeDetail 屬性來新增其他詳細數據,否則 XML Web 服務方法無法設定這些屬性。

建構函式

SoapException()

初始化 SoapException 類別的新實例。

SoapException(SerializationInfo, StreamingContext)

使用串行化數據,初始化 SoapException 類別的新實例。

SoapException(String, XmlQualifiedName, Exception)

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

SoapException(String, XmlQualifiedName, SoapFaultSubCode)

使用指定的例外狀況訊息、例外狀況碼和子程式代碼,初始化 SoapException 類別的新實例。

SoapException(String, XmlQualifiedName, String, Exception)

使用指定的例外狀況訊息、例外狀況程式代碼、URI,初始化 SoapException 類別的新實例,以識別造成例外狀況的程序代碼,以及參考例外狀況的根本原因。

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

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

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

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

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

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

SoapException(String, XmlQualifiedName, String, XmlNode)

使用指定的例外狀況訊息、例外狀況程式代碼、URI,初始化 SoapException 類別的新實例,以識別造成例外狀況的程式代碼段,以及應用程式特定的例外狀況資訊。

SoapException(String, XmlQualifiedName, String)

使用指定的例外狀況訊息、例外狀況碼和 URI,初始化 SoapException 類別的新實例,以識別造成例外狀況的程式代碼段。

SoapException(String, XmlQualifiedName)

使用指定的例外狀況訊息和例外狀況程序代碼,初始化 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 服務函式。

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通訊協定版本為何,SOAP錯誤碼是否等於 Client SOAP 錯誤碼。

IsMustUnderstandFaultCode(XmlQualifiedName)

傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 MustUnderstand

IsServerFaultCode(XmlQualifiedName)

傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 Server SOAP 錯誤碼。

IsVersionMismatchFaultCode(XmlQualifiedName)

傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 VersionMismatch SOAP 錯誤碼。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

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

(繼承來源 Exception)

事件

SerializeObjectState
已淘汰.

發生於例外狀況串行化以建立例外狀況狀態物件,其中包含例外狀況的串行化數據。

(繼承來源 Exception)

適用於