Bagikan melalui


FaultException Kelas

Definisi

Mewakili kesalahan SOAP.

public ref class FaultException : System::ServiceModel::CommunicationException
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
    inherit CommunicationException
[<System.Serializable>]
type FaultException = class
    inherit CommunicationException
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))>]
type FaultException = class
    inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
Warisan
Warisan
Turunan
Atribut

Contoh

Contoh kode berikut menunjukkan penggunaan blok coba/tangkap untuk menangkap dan menangani FaultException objek yang dilemparkan dari layanan. Ini sering terjadi ketika debugging diaktifkan di aplikasi layanan.

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 configuration 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();
    }
    catch (TimeoutException timeProblem)
    {
      Console.WriteLine("The service operation timed out. " + timeProblem.Message);
      wcfClient.Abort();
      Console.ReadLine();
    }
    // Catch the contractually specified SOAP fault raised here as an exception.
    catch (FaultException<GreetingFault> greetingFault)
    {
      Console.WriteLine(greetingFault.Detail.Message);
      Console.Read();
      wcfClient.Abort();
    }
    // Catch unrecognized faults. This handler receives exceptions thrown by WCF
    // services when ServiceDebugBehavior.IncludeExceptionDetailInFaults
    // is set to true.
    catch (FaultException faultEx)
    {
      Console.WriteLine("An unknown exception was received. "
        + faultEx.Message
        + faultEx.StackTrace
      );
      Console.Read();
      wcfClient.Abort();
    }
    // Standard communication fault handler.
    catch (CommunicationException commProblem)
    {
      Console.WriteLine("There was a communication problem. " + commProblem.Message + commProblem.StackTrace);
      Console.Read();
      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 configuration 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()
    Catch timeProblem As TimeoutException
      Console.WriteLine("The service operation timed out. " & timeProblem.Message)
      wcfClient.Abort()
      Console.ReadLine()
    ' Catch the contractually specified SOAP fault raised here as an exception.
    Catch greetingFault As FaultException(Of GreetingFault)
      Console.WriteLine(greetingFault.Detail.Message)
      Console.Read()
      wcfClient.Abort()
    ' Catch unrecognized faults. This handler receives exceptions thrown by WCF
    ' services when ServiceDebugBehavior.IncludeExceptionDetailInFaults 
    ' is set to true.
    Catch faultEx As FaultException
      Console.WriteLine("An unknown exception was received. " & faultEx.Message + faultEx.StackTrace)
      Console.Read()
      wcfClient.Abort()
    ' Standard communication fault handler.
    Catch commProblem As CommunicationException
      Console.WriteLine("There was a communication problem. " & commProblem.Message + commProblem.StackTrace)
      Console.Read()
      wcfClient.Abort()
    End Try
  End Sub
End Class

Keterangan

Dalam layanan, gunakan FaultException kelas untuk membuat kesalahan yang tidak dititik untuk kembali ke klien untuk tujuan penelusuran kesalahan.

Dalam klien, tangkap FaultException objek untuk menangani kesalahan yang tidak diketahui atau umum, seperti yang dikembalikan oleh layanan dengan properti yang IncludeExceptionDetailInFaults diatur ke true. Karena FaultException memperluas CommunicationException, ingatlah untuk menangkap objek apa pun FaultException sebelum menangkap CommunicationException objek jika Anda ingin menangkapnya secara terpisah.

Nota

Layanan Duplex juga dapat menangkap FaultException objek yang dikembalikan dari interaksi mereka dengan klien dupleks.

Secara umum, sangat disarankan agar Anda menggunakan FaultContractAttribute untuk merancang layanan Anda untuk mengembalikan kesalahan SOAP yang sangat diketik (dan bukan objek pengecualian terkelola) untuk semua kasus kesalahan di mana Anda memutuskan klien memerlukan informasi kesalahan. Namun, gunakan FaultException dalam situasi berikut:

  • Untuk mengirim kesalahan SOAP dari layanan untuk tujuan penelusuran kesalahan.

  • Untuk menangkap kesalahan SOAP pada klien ketika kesalahan bukan bagian dari kontrak layanan.

Lempar FaultException objek saat Anda ingin string diteruskan ke konstruktor dan diambil oleh klien dengan memanggil FaultException<TDetail>.ToString metode . Jika Anda menentukan kontrak kesalahan jenis System.ServiceModel.FaultException<TDetail> di mana parameter jenis adalah System.String, nilai string tersedia sebagai FaultException<TDetail>.Detail properti dan bukan dengan memanggil FaultException<TDetail>.ToString.

Untuk detailnya, lihat Menentukan dan Menangani Kesalahan dalam Kontrak dan Layanan.

Konstruktor

Nama Deskripsi
FaultException()

Menginisialisasi instans baru dari kelas FaultException.

FaultException(FaultReason, FaultCode, String)

Menginisialisasi instans FaultException baru kelas menggunakan alasan, kode kesalahan, dan nilai tindakan yang ditentukan.

FaultException(FaultReason, FaultCode)

Menginisialisasi instans FaultException baru kelas menggunakan alasan dan kode kesalahan yang ditentukan.

FaultException(FaultReason)

Menginisialisasi instans FaultException baru kelas menggunakan alasan yang ditentukan.

FaultException(MessageFault, String)

Menginisialisasi instans FaultException baru kelas menggunakan nilai kesalahan pesan yang ditentukan dan string tindakan yang disediakan.

FaultException(MessageFault)

Menginisialisasi instans FaultException baru kelas menggunakan nilai kesalahan pesan yang ditentukan.

FaultException(SerializationInfo, StreamingContext)

Menginisialisasi instans FaultException baru kelas menggunakan informasi dan konteks serialisasi yang ditentukan saat mendeserialisasi aliran ke dalam FaultException objek.

FaultException(String, FaultCode, String)

Menginisialisasi instans FaultException baru kelas menggunakan alasan, kode kesalahan, dan nilai tindakan yang ditentukan.

FaultException(String, FaultCode)

Menginisialisasi instans FaultException baru kelas menggunakan alasan dan kode kesalahan SOAP yang ditentukan.

FaultException(String)

Menginisialisasi instans FaultException baru kelas dengan alasan kesalahan yang ditentukan.

Properti

Nama Deskripsi
Action

Mendapatkan nilai tindakan SOAP untuk pesan kesalahan.

Code

Mendapatkan kode kesalahan untuk kesalahan SOAP.

Data

Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian.

(Diperoleh dari Exception)
HelpLink

Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini.

(Diperoleh dari Exception)
HResult

Mendapatkan atau mengatur 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.

Reason

FaultReason Mendapatkan untuk kesalahan SOAP.

Source

Mendapatkan atau mengatur 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

Nama Deskripsi
CreateFault(MessageFault, String, Type[])

Mengembalikan FaultException objek dari kesalahan pesan, tindakan, dan array jenis detail yang ditentukan.

CreateFault(MessageFault, Type[])

Mengembalikan FaultException objek dari kesalahan pesan yang ditentukan dan array jenis detail.

CreateMessageFault()

Mengembalikan objek MessageFault.

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)

GetObjectData(SerializationInfo, StreamingContext) Implementasi metode yang dipanggil ketika objek diserialisasikan ke dalam aliran.

GetType()

Mendapatkan jenis runtime instans saat ini.

(Diperoleh dari Exception)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Membuat dan mengembalikan representasi string dari pengecualian saat ini.

(Diperoleh dari Exception)

Acara

Nama Deskripsi
SerializeObjectState
Kedaluwarsa.

Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian.

(Diperoleh dari Exception)

Berlaku untuk