SoapException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示在透過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,則如果擲回另一種類型的例外狀況,則可以透過 Actor、Code 和 Detail 屬性來新增其他詳細數據,否則 XML Web 服務方法無法設定這些屬性。
建構函式
欄位
ClientFaultCode |
指定 SOAP 錯誤碼,表示未正確格式化或不包含適當資訊的用戶端呼叫。 |
DetailElementName |
取得 XmlQualifiedName,表示 SOAP 錯誤碼的 Detail 專案。 |
MustUnderstandFaultCode |
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 錯誤之 |
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錯誤碼是否等於 |
IsMustUnderstandFaultCode(XmlQualifiedName) |
傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 |
IsServerFaultCode(XmlQualifiedName) |
傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 |
IsVersionMismatchFaultCode(XmlQualifiedName) |
傳回值,指出不論使用的SOAP通訊協定版本為何,SOAP錯誤碼是否等於 |
MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
ToString() |
建立並傳回目前例外狀況的字串表示。 (繼承來源 Exception) |
事件
SerializeObjectState |
已淘汰.
發生於例外狀況串行化以建立例外狀況狀態物件,其中包含例外狀況的串行化數據。 (繼承來源 Exception) |