EncoderFallbackException EncoderFallbackException EncoderFallbackException EncoderFallbackException Class

定義

エンコーダー フォールバック操作が失敗したときにスローされる例外。The exception that is thrown when an encoder fallback operation fails. このクラスは継承できません。This class cannot be inherited.

public ref class EncoderFallbackException sealed : ArgumentException
[System.Serializable]
public sealed class EncoderFallbackException : ArgumentException
type EncoderFallbackException = class
    inherit ArgumentException
Public NotInheritable Class EncoderFallbackException
Inherits ArgumentException
継承
属性

次のコード例は、 EncoderExceptionFallbackクラスEncoderFallbackExceptionとクラスを示しています。The following code example demonstrates the EncoderExceptionFallback and EncoderFallbackException classes.

// This example demonstrates the EncoderExceptionFallback class.

using namespace System;
using namespace System::Text;

int main()
{
    // Create an encoding, which is equivalent to calling the
    // ASCIIEncoding class constructor.
    // The EncoderExceptionFallback parameter causes an exception to
    // be thrown when a character cannot be encoded.
    // A decoder exception fallback is also specified, but it is not
    // used because this example terminates during the encoding operation.

    Encoding^ asciiEncoding = Encoding::GetEncoding("us-ascii",
        gcnew EncoderExceptionFallback(), gcnew DecoderExceptionFallback());

    // The input string consists of the Unicode characters LEFT POINTING
    // DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT
    // POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB).
    // The encoding can only encode characters in the US-ASCII range of
    // U+0000 through U+007F. Consequently, the characters bracketing the
    // 'X' character cause an exception.
    String^ inputString = L"\u00abX\u00bb";

    String^ twoNewLines = Environment::NewLine + Environment::NewLine;
    array<Byte>^ encodedBytes = gcnew array<Byte>(
        asciiEncoding->GetMaxByteCount(inputString->Length));
    int numberOfEncodedBytes = 0;

    // ---------------------------------------------------------------------
    Console::Clear();

    // Display the name of the encoding.
    Console::WriteLine("The name of the encoding is \"{0}\".{1}",
        asciiEncoding->WebName, Environment::NewLine);

    // Display the input string in text.
    Console::WriteLine("Input string ({0} characters): \"{1}\"",
        inputString->Length, inputString);

    // Display the input string in hexadecimal.
    Console::Write("Input string in hexadecimal: ");
    for each (char c in inputString)
    {
        Console::Write("0x{0:X2} ", c);
    }
    Console::Write(twoNewLines);

    // ---------------------------------------------------------------------
    // Attempt to encode the input string. However, an exception is thrown
    // before the input string can be encoded.

    Console::WriteLine("Encode the input string...");

    // The code example terminates during the call to the GetBytes() method.
    try
    {
        numberOfEncodedBytes = asciiEncoding->GetBytes(inputString, 0,
            inputString->Length, encodedBytes, 0);
        // This statement is never executed.
        Console::WriteLine("This statement is never executed.");
    }
    catch (EncoderFallbackException^ ex)
    {
        Console::WriteLine(ex);
        Console::WriteLine(
            "{0}*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***",
            Environment::NewLine);
    }
}

/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "X"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
System.Text.EncoderFallbackException: Unable to translate Unicode character \u00AB at inde
x 0 to specified code page.
at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index)
at System.Text.EncoderFallbackBuffer.InternalFallback(Char ch, Char*& chars)
at System.Text.ASCIIEncoding.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32
byteCount, EncoderNLS encoder)
at System.Text.ASCIIEncoding.GetBytes(String chars, Int32 charIndex, Int32 charCount, B
yte[] bytes, Int32 byteIndex)
at Sample.Main()

*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***

*/
// This example demonstrates the EncoderExceptionFallback class.

using System;
using System.Text;

class Sample 
{
    public static void Main() 
    {

// Create an encoding, which is equivalent to calling the 
// ASCIIEncoding class constructor. 
// The EncoderExceptionFallback parameter causes an exception to
// be thrown when a character cannot be encoded. 
// A decoder exception fallback is also specified, but it is not 
// used because this example terminates during the encoding operation.  

    Encoding ae = Encoding.GetEncoding(
                  "us-ascii",
                  new EncoderExceptionFallback(), 
                  new DecoderExceptionFallback());

// The input string consists of the Unicode characters LEFT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00BB). 
// The encoding can only encode characters in the US-ASCII range of U+0000 
// through U+007F. Consequently, the characters bracketing the 'X' character
// cause an exception.
    string inputString = "\u00abX\u00bb";

    string twoNewLines = "\n\n";
    byte[] encodedBytes = new byte[ae.GetMaxByteCount(inputString.Length)];
    int numberOfEncodedBytes = 0;

// --------------------------------------------------------------------------
    Console.Clear();

// Display the name of the encoding.
    Console.WriteLine("The name of the encoding is \"{0}\".\n", ae.WebName);

// Display the input string in text.
    Console.WriteLine("Input string ({0} characters): \"{1}\"", 
                       inputString.Length, inputString);

// Display the input string in hexadecimal.
    Console.Write("Input string in hexadecimal: ");
    foreach (char c in inputString.ToCharArray()) {
        Console.Write("0x{0:X2} ", (int)c);}
    Console.Write(twoNewLines);

// --------------------------------------------------------------------------
// Attempt to encode the input string. However, an exception is thrown before
// the input string can be encoded.

    Console.WriteLine("Encode the input string...");

// The code example terminates during the call to the GetBytes() method.
    try {
        numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, 
                                           encodedBytes, 0);
        }
    catch (EncoderFallbackException e)
        {
        Console.WriteLine(e);
        Console.WriteLine("\n*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***");
        return;
        }

// This statement is never executed.
    Console.WriteLine("This statement is never executed.");
    }
}
/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "«X»"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
System.Text.EncoderFallbackException: Unable to translate Unicode character \u00AB at inde
x 0 to specified code page.
   at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index)
   at System.Text.EncoderFallbackBuffer.InternalFallback(Char ch, Char*& chars)
   at System.Text.ASCIIEncoding.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32
byteCount, EncoderNLS encoder)
   at System.Text.ASCIIEncoding.GetBytes(String chars, Int32 charIndex, Int32 charCount, B
yte[] bytes, Int32 byteIndex)
   at Sample.Main()

*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***

*/
' This example demonstrates the EncoderExceptionFallback class.
Imports System.Text

Class Sample
    Public Shared Sub Main() 
        
        ' Create an encoding, which is equivalent to calling the 
        ' ASCIIEncoding class constructor. 
        ' The EncoderExceptionFallback parameter causes an exception to
        ' be thrown when a character cannot be encoded. 
        ' A decoder exception fallback is also specified, but it is not 
        ' used because this example terminates during the encoding operation.  


        Dim eef As New EncoderExceptionFallback()
        Dim def As New DecoderExceptionFallback()
        Dim ae As Encoding = Encoding.GetEncoding("us-ascii", eef, def)
        
        ' The input string consists of the Unicode characters LEFT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00BB). 
        ' The encoding can only encode characters in the US-ASCII range of U+0000 
        ' through U+007F. Consequently, the characters bracketing the 'X' character
        ' cause an exception.

        Dim inputString As String = "«X»"
        
        Dim twoNewLines As String = vbCrLf & vbCrLf
        Dim numberOfEncodedBytes As Integer = ae.GetMaxByteCount(inputString.Length)
        ' Counteract the compiler adding an extra element.
        Dim encodedBytes(numberOfEncodedBytes - 1) As Byte
        
        ' --------------------------------------------------------------------------
        Console.Clear()
        
        ' Display the name of the encoding.
        Console.WriteLine("The name of the encoding is ""{0}""." & vbCrLf, ae.WebName)
        
        ' Display the input string in text.
        Console.WriteLine("Input string ({0} characters): ""{1}""", _
                           inputString.Length, inputString)
        
        ' Display the input string in hexadecimal. 
        ' Each element is converted to an integer with Convert.ToInt32.
        Console.Write("Input string in hexadecimal: ")
        Dim c As Char
        For Each c In  inputString.ToCharArray()
            Console.Write("0x{0:X2} ", Convert.ToInt32(c))
        Next c
        Console.Write(twoNewLines)
        
        ' --------------------------------------------------------------------------
        ' Attempt to encode the input string. However, an exception is thrown before
        ' the input string can be encoded.
        Console.WriteLine("Encode the input string...")
        
        ' The code example terminates during the call to the GetBytes() method.
        Try
            numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, _
                                               encodedBytes, 0)
        Catch e As EncoderFallbackException
            Console.WriteLine(e)
            Console.WriteLine(vbCrLf & _
                              "*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***")
            Return
        End Try
        
        ' This statement is never executed.
        Console.WriteLine("This statement is never executed.")
    
    End Sub
End Class 'Sample
'
'This code example produces the following results:
'
'The name of the encoding is "us-ascii".
'
'Input string (3 characters): "X"
'Input string in hexadecimal: 0xAB 0x58 0xBB
'
'Encode the input string...
'System.Text.EncoderFallbackException: Unable to translate Unicode character \u00AB at inde
'x 0 to specified code page.
'   at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index)
'   at System.Text.EncoderFallbackBuffer.InternalFallback(Char ch, Char*& chars)
'   at System.Text.ASCIIEncoding.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32
'byteCount, EncoderNLS encoder)
'   at System.Text.ASCIIEncoding.GetBytes(String chars, Int32 charIndex, Int32 charCount, B
'yte[] bytes, Int32 byteIndex)
'   at Sample.Main()
'
'*** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. ***
'

コンストラクター

EncoderFallbackException() EncoderFallbackException() EncoderFallbackException() EncoderFallbackException()

EncoderFallbackException クラスの新しいインスタンスを初期化します。Initializes a new instance of the EncoderFallbackException class.

EncoderFallbackException(String) EncoderFallbackException(String) EncoderFallbackException(String) EncoderFallbackException(String)

EncoderFallbackException クラスの新しいインスタンスを初期化します。Initializes a new instance of the EncoderFallbackException class. パラメーターでは、エラー メッセージを指定します。A parameter specifies the error message.

EncoderFallbackException(String, Exception) EncoderFallbackException(String, Exception) EncoderFallbackException(String, Exception) EncoderFallbackException(String, Exception)

EncoderFallbackException クラスの新しいインスタンスを初期化します。Initializes a new instance of the EncoderFallbackException class. パラメーターでは、エラー メッセージと、この例外の原因となった内部例外を指定します。Parameters specify the error message and the inner exception that is the cause of this exception.

プロパティ

CharUnknown CharUnknown CharUnknown CharUnknown

例外の原因となった入力文字を取得します。Gets the input character that caused the exception.

CharUnknownHigh CharUnknownHigh CharUnknownHigh CharUnknownHigh

例外の原因となったサロゲート ペアの上位サロゲートを取得します。Gets the high component character of the surrogate pair that caused the exception.

CharUnknownLow CharUnknownLow CharUnknownLow CharUnknownLow

例外の原因となったサロゲート ペアの下位サロゲートを取得します。Gets the low component character of the surrogate pair that caused the exception.

Data Data Data Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
Index Index Index Index

例外の原因となった文字の入力バッファーにおけるインデックス位置を取得します。Gets the index position in the input buffer of the character that caused the exception.

InnerException InnerException InnerException InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

エラー メッセージとパラメーター名を取得します。パラメーター名が設定されていない場合は、エラー メッセージだけを取得します。Gets the error message and the parameter name, or only the error message if no parameter name is set.

(Inherited from ArgumentException)
ParamName ParamName ParamName ParamName

この例外の原因である引数の名前を取得します。Gets the name of the parameter that causes this exception.

(Inherited from ArgumentException)
Source Source Source Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(Inherited from Exception)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

パラメーター名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。Sets the SerializationInfo object with the parameter name and additional exception information.

(Inherited from ArgumentException)
GetType() GetType() GetType() GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(Inherited from Exception)
IsUnknownSurrogate() IsUnknownSurrogate() IsUnknownSurrogate() IsUnknownSurrogate()

例外の原因となった入力がサロゲート ペアであるかどうかを示します。Indicates whether the input that caused the exception is a surrogate pair.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(Inherited from Exception)

イベント

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

適用対象

こちらもご覧ください