EncoderFallbackException Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A exceção gerada quando uma operação de fallback do codificador falha. Essa classe não pode ser herdada.
public ref class EncoderFallbackException sealed : ArgumentException
public sealed class EncoderFallbackException : ArgumentException
[System.Serializable]
public sealed class EncoderFallbackException : ArgumentException
type EncoderFallbackException = class
inherit ArgumentException
[<System.Serializable>]
type EncoderFallbackException = class
inherit ArgumentException
Public NotInheritable Class EncoderFallbackException
Inherits ArgumentException
- Herança
- Herança
- Atributos
Exemplos
O exemplo de código a seguir demonstra as classes e EncoderFallbackException as EncoderExceptionFallback classes.
// 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
'
'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. ***
'
Construtores
| Nome | Description |
|---|---|
| EncoderFallbackException() |
Inicializa uma nova instância da classe EncoderFallbackException. |
| EncoderFallbackException(String, Exception) |
Inicializa uma nova instância da classe EncoderFallbackException. Os parâmetros especificam a mensagem de erro e a exceção interna que é a causa dessa exceção. |
| EncoderFallbackException(String) |
Inicializa uma nova instância da classe EncoderFallbackException. Um parâmetro especifica a mensagem de erro. |
Propriedades
| Nome | Description |
|---|---|
| CharUnknown |
Obtém o caractere de entrada que causou a exceção. |
| CharUnknownHigh |
Obtém o caractere de componente alto do par substituto que causou a exceção. |
| CharUnknownLow |
Obtém o caractere de componente baixo do par substituto que causou a exceção. |
| Data |
Obtém uma coleção de pares chave/valor que fornecem informações adicionais definidas pelo usuário sobre a exceção. (Herdado de Exception) |
| HelpLink |
Obtém ou define um link para o arquivo de ajuda associado a essa exceção. (Herdado de Exception) |
| HResult |
Obtém ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica. (Herdado de Exception) |
| Index |
Obtém a posição do índice no buffer de entrada do caractere que causou a exceção. |
| InnerException |
Obtém a Exception instância que causou a exceção atual. (Herdado de Exception) |
| Message |
Obtém a mensagem de erro e o nome do parâmetro ou apenas a mensagem de erro se nenhum nome de parâmetro estiver definido. (Herdado de ArgumentException) |
| ParamName |
Obtém o nome do parâmetro que causa essa exceção. (Herdado de ArgumentException) |
| Source |
Obtém ou define o nome do aplicativo ou do objeto que causa o erro. (Herdado de Exception) |
| StackTrace |
Obtém uma representação de cadeia de caracteres dos quadros imediatos na pilha de chamadas. (Herdado de Exception) |
| TargetSite |
Obtém o método que gera a exceção atual. (Herdado de Exception) |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetBaseException() |
Quando substituído em uma classe derivada, retorna a Exception causa raiz de uma ou mais exceções subsequentes. (Herdado de Exception) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Define o SerializationInfo objeto com o nome do parâmetro e informações adicionais de exceção. (Herdado de ArgumentException) |
| GetType() |
Obtém o tipo de runtime da instância atual. (Herdado de Exception) |
| IsUnknownSurrogate() |
Indica se a entrada que causou a exceção é um par alternativo. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Cria e retorna uma representação de cadeia de caracteres da exceção atual. (Herdado de Exception) |
Eventos
| Nome | Description |
|---|---|
| SerializeObjectState |
Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção. (Herdado de Exception) |