SoapException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示例外狀況,在經由 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 服務方法設定的屬性。
建構函式
欄位
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 Service 的功能。 |
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 錯誤碼是否相當於 |
IsMustUnderstandFaultCode(XmlQualifiedName) |
傳回值,指出 SOAP 錯誤碼是否相當於 |
IsServerFaultCode(XmlQualifiedName) |
傳回值,指出 SOAP 錯誤碼是否相當於 |
IsVersionMismatchFaultCode(XmlQualifiedName) |
傳回值,指出 SOAP 錯誤碼是否相當於 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
建立並傳回目前例外狀況的字串表示。 (繼承來源 Exception) |
事件
SerializeObjectState |
已淘汰.
當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。 (繼承來源 Exception) |