FaultException<TDetail> Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Digunakan dalam aplikasi klien untuk menangkap kesalahan SOAP yang ditentukan secara kontraktual.
generic <typename TDetail>
public ref class FaultException : System::ServiceModel::FaultException
public class FaultException<TDetail> : System.ServiceModel.FaultException
[System.Runtime.Serialization.KnownType("GetKnownTypes")]
[System.Serializable]
public class FaultException<TDetail> : System.ServiceModel.FaultException
[System.Serializable]
public class FaultException<TDetail> : System.ServiceModel.FaultException
type FaultException<'Detail> = class
inherit FaultException
[<System.Runtime.Serialization.KnownType("GetKnownTypes")>]
[<System.Serializable>]
type FaultException<'Detail> = class
inherit FaultException
[<System.Serializable>]
type FaultException<'Detail> = class
inherit FaultException
Public Class FaultException(Of TDetail)
Inherits FaultException
Jenis parameter
- TDetail
Jenis detail kesalahan yang dapat diserialisasikan.
- Warisan
- Warisan
- Turunan
- Atribut
Contoh
Contoh kode berikut menunjukkan bagaimana layanan menggunakan FaultException<TDetail> jenis untuk melemparkan pengecualian terkelola yang dikonversi menjadi kesalahan SOAP yang ditentukan oleh FaultContractAttribute.
using System;
using System.Collections.Generic;
using System.Net.Security;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace Microsoft.WCF.Documentation
{
[ServiceContract(Namespace="http://microsoft.wcf.documentation")]
public interface ISampleService{
[OperationContract]
[FaultContractAttribute(
typeof(GreetingFault),
Action="http://www.contoso.com/GreetingFault",
ProtectionLevel=ProtectionLevel.EncryptAndSign
)]
string SampleMethod(string msg);
}
[DataContractAttribute]
public class GreetingFault
{
private string report;
public GreetingFault(string message)
{
this.report = message;
}
[DataMemberAttribute]
public string Message
{
get { return this.report; }
set { this.report = value; }
}
}
class SampleService : ISampleService
{
#region ISampleService Members
public string SampleMethod(string msg)
{
Console.WriteLine("Client said: " + msg);
// Generate intermittent error behavior.
Random rnd = new Random(DateTime.Now.Millisecond);
int test = rnd.Next(5);
if (test % 2 != 0)
return "The service greets you: " + msg;
else
throw new FaultException<GreetingFault>(new GreetingFault("A Greeting error occurred. You said: " + msg));
}
#endregion
}
}
Imports System.Collections.Generic
Imports System.Net.Security
Imports System.Runtime.Serialization
Imports System.ServiceModel
Imports System.Text
Namespace Microsoft.WCF.Documentation
<ServiceContract(Namespace:="http://microsoft.wcf.documentation")> _
Public Interface ISampleService
<OperationContract, FaultContractAttribute(GetType(GreetingFault), Action:="http://www.contoso.com/GreetingFault", ProtectionLevel:=ProtectionLevel.EncryptAndSign)> _
Function SampleMethod(ByVal msg As String) As String
End Interface
<DataContractAttribute> _
Public Class GreetingFault
Private report As String
Public Sub New(ByVal message As String)
Me.report = message
End Sub
<DataMemberAttribute> _
Public Property Message() As String
Get
Return Me.report
End Get
Set(ByVal value As String)
Me.report = value
End Set
End Property
End Class
Friend Class SampleService
Implements ISampleService
#Region "ISampleService Members"
Public Function SampleMethod(ByVal msg As String) As String Implements ISampleService.SampleMethod
Console.WriteLine("Client said: " & msg)
' Generate intermittent error behavior.
Dim rand As New Random(DateTime.Now.Millisecond)
Dim test As Integer = rand.Next(5)
If test Mod 2 <> 0 Then
Return "The service greets you: " & msg
Else
Throw New FaultException(Of GreetingFault)(New GreetingFault("A Greeting error occurred. You said: " & msg))
End If
End Function
#End Region
End Class
End Namespace
Contoh kode berikut menunjukkan tampilan kode klien saat diimpor oleh klien menggunakan Alat Utilitas Metadata ServiceModel (Svcutil.exe).
Contoh kode berikut menunjukkan bagaimana klien dapat menangkap FaultException<TDetail> jenis yang mewakili kesalahan SOAP kustom yang ditentukan dalam kontrak operasi.
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using Microsoft.WCF.Documentation;
public class Client
{
public static void Main()
{
// Picks up configuration from the config file.
SampleServiceClient wcfClient = new SampleServiceClient();
try
{
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClient.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClient.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.ReadLine();
wcfClient.Abort();
}
catch (FaultException<GreetingFault> greetingFault)
{
Console.WriteLine(greetingFault.Detail.Message);
Console.ReadLine();
wcfClient.Abort();
}
catch (FaultException unknownFault)
{
Console.WriteLine("An unknown exception was received. " + unknownFault.Message);
Console.ReadLine();
wcfClient.Abort();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message + commProblem.StackTrace);
Console.ReadLine();
wcfClient.Abort();
}
}
}
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports Microsoft.WCF.Documentation
Public Class Client
Public Shared Sub Main()
' Picks up configuration from the config file.
Dim wcfClient As New SampleServiceClient()
Try
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClient.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClient.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.ReadLine()
wcfClient.Abort()
Catch greetingFault As FaultException(Of GreetingFault)
Console.WriteLine(greetingFault.Detail.Message)
Console.ReadLine()
wcfClient.Abort()
Catch unknownFault As FaultException
Console.WriteLine("An unknown exception was received. " & unknownFault.Message)
Console.ReadLine()
wcfClient.Abort()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message + commProblem.StackTrace)
Console.ReadLine()
wcfClient.Abort()
End Try
End Sub
End Class
Keterangan
FaultException<TDetail> Tangkap objek dalam aplikasi klien Windows Communication Foundation (WCF) untuk menangani kesalahan SOAP yang telah ditentukan secara kontraktual dalam kontrak operasi.
Layanan umum yang FaultContractAttribute disebarkan menggunakan untuk secara resmi menentukan semua kesalahan SOAP yang dapat diterima klien dalam operasi normal. Informasi kesalahan dalam FaultContractAttribute muncul sebagai FaultException<TDetail> (di mana typeparameter adalah objek kesalahan yang dapat diserialisasikan yang ditentukan dalam operasi FaultContractAttribute) ketika tiba di aplikasi klien. FaultContractAttribute dapat digunakan untuk menentukan kesalahan SOAP untuk metode layanan dua arah dan untuk pasangan metode asinkron.
Karena FaultException<TDetail> merupakan FaultException dan oleh karena itu CommunicationException, untuk menangkap kesalahan SOAP tertentu, pastikan Anda menangkap FaultException<TDetail> jenis sebelum FaultException dan CommunicationException atau menangani pengecualian yang ditentukan di salah satu penangan pengecualian tersebut.
Catatan
Jika Anda menggunakan System.ServiceModel.FaultContractAttribute untuk menentukan FaultException<TDetail> di mana parameter jenis adalah System.String, nilai string ditetapkan ke Detail properti di aplikasi klien; klien tidak dapat mengambil string tersebut FaultException<TDetail>.ToString dengan memanggil metode . Agar nilai string dikembalikan saat aplikasi klien memanggil Exception.ToString, berikan System.ServiceModel.FaultException pengecualian di dalam operasi dan teruskan string ke konstruktor. Secara umum, disarankan agar jenis detail menjadi jenis serialisasi kustom yang sesuai dengan kesalahan dan bukan System.String.
Konstruktor
FaultException<TDetail>(SerializationInfo, StreamingContext) |
Menginisialisasi instans FaultException<TDetail> baru kelas menggunakan informasi dan konteks serialisasi yang ditentukan saat mendeserialisasi aliran ke dalam FaultException objek. |
FaultException<TDetail>(TDetail) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail yang ditentukan. |
FaultException<TDetail>(TDetail, FaultReason) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail dan alasan kesalahan yang ditentukan. |
FaultException<TDetail>(TDetail, FaultReason, FaultCode) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail, alasan kesalahan, dan kode kesalahan yang ditentukan. |
FaultException<TDetail>(TDetail, FaultReason, FaultCode, String) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail yang ditentukan, dan alasan kesalahan SOAP, kode, dan nilai tindakan. |
FaultException<TDetail>(TDetail, String) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan detail dan alasan kesalahan yang ditentukan. |
FaultException<TDetail>(TDetail, String, FaultCode) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail, alasan kesalahan, dan kode kesalahan yang ditentukan. |
FaultException<TDetail>(TDetail, String, FaultCode, String) |
Menginisialisasi instans FaultException<TDetail> baru kelas yang menggunakan objek detail yang ditentukan, dan alasan kesalahan SOAP, kode, dan nilai tindakan. |
Properti
Action |
Mendapatkan nilai tindakan SOAP untuk pesan kesalahan. (Diperoleh dari FaultException) |
Code |
Mendapatkan kode kesalahan untuk kesalahan SOAP. (Diperoleh dari FaultException) |
Data |
Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian. (Diperoleh dari Exception) |
Detail |
Mendapatkan objek yang berisi informasi detail kondisi kesalahan. |
HelpLink |
Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini. (Diperoleh dari Exception) |
HResult |
Mendapatkan atau menetapkan HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu. (Diperoleh dari Exception) |
InnerException |
Mendapatkan instans Exception yang menyebabkan pengecualian saat ini. (Diperoleh dari Exception) |
Message |
Mendapatkan pesan untuk pengecualian. (Diperoleh dari FaultException) |
Reason |
FaultReason Mendapatkan untuk kesalahan SOAP. (Diperoleh dari FaultException) |
Source |
Get dan set nama aplikasi atau objek yang menyebabkan kesalahan. (Diperoleh dari Exception) |
StackTrace |
Mendapatkan representasi string dari bingkai langsung pada tumpukan panggilan. (Diperoleh dari Exception) |
TargetSite |
Mendapatkan metode yang melemparkan pengecualian saat ini. (Diperoleh dari Exception) |
Metode
CreateMessageFault() |
MessageFault Membuat objek yang dapat digunakan untuk membuat Message yang mewakili kesalahan SOAP. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetBaseException() |
Ketika ditimpa di kelas turunan, mengembalikan Exception yang merupakan akar penyebab dari satu atau beberapa pengecualian berikutnya. (Diperoleh dari Exception) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
GetObjectData(SerializationInfo, StreamingContext) Implementasi metode yang dipanggil ketika objek diserialisasikan ke dalam aliran. |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
GetObjectData(SerializationInfo, StreamingContext) Implementasi metode yang dipanggil ketika objek diserialisasikan ke dalam aliran. (Diperoleh dari FaultException) |
GetType() |
Mendapatkan jenis runtime instans saat ini. (Diperoleh dari Exception) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string untuk FaultException<TDetail> objek . |
Acara
SerializeObjectState |
Kedaluwarsa.
Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian. (Diperoleh dari Exception) |