EncoderFallbackException Class
The exception that is thrown when an encoder fallback operation fails. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
System::Exception
System::SystemException
System::ArgumentException
System.Text::EncoderFallbackException
| Name | Description | |
|---|---|---|
![]() | EncoderFallbackException() | Initializes a new instance of the EncoderFallbackException class. |
![]() | EncoderFallbackException(String^) | Initializes a new instance of the EncoderFallbackException class. A parameter specifies the error message. |
![]() | EncoderFallbackException(String^, Exception^) | Initializes a new instance of the EncoderFallbackException class. Parameters specify the error message and the inner exception that is the cause of this exception. |
| Name | Description | |
|---|---|---|
![]() | CharUnknown | Gets the input character that caused the exception. |
![]() | CharUnknownHigh | Gets the high component character of the surrogate pair that caused the exception. |
![]() | CharUnknownLow | Gets the low component character of the surrogate pair 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 buffer of the character that caused the exception. |
![]() | InnerException | |
![]() | 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() | |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetObjectData(SerializationInfo^, StreamingContext) | 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.) |
![]() | IsUnknownSurrogate() | Indicates whether the input that caused the exception is a surrogate pair. |
![]() | ToString() | Creates and returns a string representation of the current exception.(Inherited from Exception.) |
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. *** */
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

