DecoderFallbackException Class
.NET Framework 4.5
The exception that is thrown when a decoder fallback operation fails. This class cannot be inherited.
System.Object
System.Exception
System.SystemException
System.ArgumentException
System.Text.DecoderFallbackException
System.Exception
System.SystemException
System.ArgumentException
System.Text.DecoderFallbackException
Namespace: System.Text
Assembly: mscorlib (in mscorlib.dll)
The DecoderFallbackException type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | DecoderFallbackException() | Initializes a new instance of the DecoderFallbackException class. |
![]() ![]() ![]() | DecoderFallbackException(String) | Initializes a new instance of the DecoderFallbackException class. A parameter specifies the error message. |
![]() ![]() ![]() | DecoderFallbackException(String, Exception) | Initializes a new instance of the DecoderFallbackException class. Parameters specify the error message and the inner exception that is the cause of this exception. |
![]() ![]() ![]() | DecoderFallbackException(String, Byte[], Int32) | Initializes a new instance of the DecoderFallbackException class. Parameters specify the error message, the array of bytes being decoded, and the index of the byte that cannot be decoded. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | BytesUnknown | Gets the input byte sequence that caused the exception. |
![]() ![]() ![]() | Data | Gets a collection of key/value pairs that provide additional user-defined information about the exception. (Inherited from Exception.) |
![]() ![]() ![]() | HelpLink | Gets or sets a link to the help file associated with this exception. (Inherited from Exception.) |
![]() ![]() | HResult | Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception. (Inherited from Exception.) |
![]() ![]() ![]() | Index | Gets the index position in the input byte sequence of the byte that caused the exception. |
![]() ![]() ![]() | InnerException | Gets the Exception instance that caused the current exception. (Inherited from Exception.) |
![]() ![]() ![]() | Message | Gets the error message and the parameter name, or only the error message if no parameter name is set. (Inherited from ArgumentException.) |
![]() ![]() ![]() | ParamName | Gets the name of the parameter that causes this exception. (Inherited from ArgumentException.) |
![]() ![]() ![]() | Source | Gets or sets the name of the application or the object that causes the error. (Inherited from Exception.) |
![]() ![]() ![]() | StackTrace | Gets a string representation of the immediate frames on the call stack. (Inherited from Exception.) |
![]() | TargetSite | Gets the method that throws the current exception. (Inherited from Exception.) |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() ![]() ![]() | GetBaseException | When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions. (Inherited from Exception.) |
![]() ![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetObjectData | Sets the SerializationInfo object with the parameter name and additional exception information. (Inherited from ArgumentException.) |
![]() | GetType | Gets the runtime type of the current instance. (Inherited from Exception.) |
![]() ![]() ![]() | ToString | Creates and returns a string representation of the current exception. (Inherited from Exception.) |
The following code example demonstrates the DecoderExceptionFallback and DecoderFallbackException classes.
// This example demonstrates the DecoderExceptionFallback 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 DecoderExceptionFallback parameter specifies that an exception // is thrown if a character cannot be encoded. // An encoder exception fallback is also specified, but in this code // example the encoding operation cannot fail. Encoding ae = Encoding.GetEncoding( "us-ascii", new EncoderExceptionFallback(), new DecoderExceptionFallback()); string inputString = "XYZ"; string decodedString; string twoNewLines = "\n\n"; byte[] encodedBytes = new byte[ae.GetByteCount(inputString)]; 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); // -------------------------------------------------------------------------- // Encode the input string. Console.WriteLine("Encode the input string..."); numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, encodedBytes, 0); // Display the encoded bytes. Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):\n", numberOfEncodedBytes); foreach (byte b in encodedBytes) { Console.Write("0x{0:X2} ", (int)b); } Console.Write(twoNewLines); // -------------------------------------------------------------------------- // Replace the encoded byte sequences for the characters 'X' and 'Z' with the // value 0xFF, which is outside the valid range of 0x00 to 0x7F for // ASCIIEncoding. The resulting byte sequence is actually the beginning of // this code example because it is the input to the decoder operation, and // is equivalent to a corrupted or improperly encoded byte sequence. encodedBytes[0] = 0xFF; encodedBytes[2] = 0xFF; Console.WriteLine("Display the corrupted byte sequence..."); Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):\n", numberOfEncodedBytes); foreach (byte b in encodedBytes) { Console.Write("0x{0:X2} ", (int)b); } Console.Write(twoNewLines); // -------------------------------------------------------------------------- // Attempt to decode the encoded bytes. However, an exception is thrown // before the byte sequence can be decoded. Console.WriteLine("Compare the decoded bytes to the input string..."); try { decodedString = ae.GetString(encodedBytes); } catch (DecoderFallbackException dfe) { Console.WriteLine(dfe); 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): "XYZ" Input string in hexadecimal: 0x58 0x59 0x5A Encode the input string... Encoded bytes in hexadecimal (3 bytes): 0x58 0x59 0x5A Display the corrupted byte sequence... Encoded bytes in hexadecimal (3 bytes): 0xFF 0x59 0xFF Compare the decoded bytes to the input string... System.Text.DecoderFallbackException: Unable to translate bytes [FF] at index 0 from speci fied code page to Unicode. at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index) at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index ) at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes) at System.Text.ASCIIEncoding.GetCharCount(Byte* bytes, Int32 count, DecoderNLS decoder) at System.String.CreateStringFromEncoding(Byte* bytes, Int32 byteLength, Encoding encod ing) at System.Text.ASCIIEncoding.GetString(Byte[] bytes, Int32 byteIndex, Int32 byteCount) at System.Text.Encoding.GetString(Byte[] bytes) at Sample.Main() *** THE CODE EXAMPLE TERMINATES HERE AS INTENDED. *** */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.


