Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe FormatException

 

Data di pubblicazione: ottobre 2016

Eccezione generata quando il formato di un argomento non è valido oppure quando il formato di una stringa di formato composta non è corretto.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

System::Object
  System::Exception
    System::SystemException
      System::FormatException
        System.IO::FileFormatException
        System.Net::CookieException
        System.Reflection::CustomAttributeFormatException
        System::UriFormatException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class FormatException : SystemException

NomeDescrizione
System_CAPS_pubmethodFormatException()

Inizializza una nuova istanza della classe FormatException.

System_CAPS_protmethodFormatException(SerializationInfo^, StreamingContext)

Inizializza una nuova istanza della classe FormatException con dati serializzati.

System_CAPS_pubmethodFormatException(String^)

Inizializza una nuova istanza della classe FormatException con un messaggio di errore specificato.

System_CAPS_pubmethodFormatException(String^, Exception^)

Inizializza una nuova istanza della classe FormatException con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione corrente.

NomeDescrizione
System_CAPS_pubpropertyData

Ottiene una collezione di coppie chiave/valore che forniscono ulteriori informazioni definite dall'utente sull'eccezione. (Ereditato da Exception.)

System_CAPS_pubpropertyHelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.(Ereditato da Exception.)

System_CAPS_pubpropertyHResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato ad una specifica eccezione. (Ereditato da Exception.)

System_CAPS_pubpropertyInnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.(Ereditato da Exception.)

System_CAPS_pubpropertyMessage

Ottiene un messaggio che descrive l'eccezione corrente.(Ereditato da Exception.)

System_CAPS_pubpropertySource

Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.(Ereditato da Exception.)

System_CAPS_pubpropertyStackTrace

Ottiene una rappresentazione in forma di stringa dei frame nello stack di chiamate. (Ereditato da Exception.)

System_CAPS_pubpropertyTargetSite

Ottiene il metodo che ha generato l'eccezione corrente. (Ereditato da Exception.)

NomeDescrizione
System_CAPS_pubmethodEquals(Object^)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetBaseException()

Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive.(Ereditato da Exception.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo^, StreamingContext)

Quando ne viene eseguito l'override in una classe derivata, imposta il controllo SerializationInfo con le informazioni sull'eccezione.(Ereditato da Exception.)

System_CAPS_pubmethodGetType()

Ottiene il tipo di runtime dell'istanza corrente.(Ereditato da Exception.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.(Ereditato da Exception.)

NomeDescrizione
System_CAPS_proteventSerializeObjectState

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.(Ereditato da Exception.)

Oggetto FormatException eccezione può essere generata per uno dei seguenti motivi:

  • In una chiamata a un metodo che converte una stringa in un altro tipo di dati, la stringa non sono conformi al modello richiesto. Ciò in genere si verifica quando la chiamata di alcuni metodi della Convert classe e il Parse e ParseExact di alcuni tipi di metodi.

    Nella maggior parte dei casi, in particolare se la stringa che si sta convertendo input da un utente o viene letto da un file, è necessario utilizzare un try/catch bloccare e gestire il FormatException eccezione se la conversione ha esito negativo. È inoltre possibile sostituire la chiamata al metodo di conversione con una chiamata a un TryParse o TryParseExact (metodo), se presente. Tuttavia, un FormatException eccezione generata quando si tenta di analizzare una stringa predefinita o a livello di codice indica un errore del programma. In questo caso, è necessario correggere l'errore piuttosto che gestisce l'eccezione.

    La conversione di una stringa per i seguenti tipi nel System dello spazio dei nomi può generare un FormatException eccezione:

    • Boolean. Il Boolean::Parse(String^) e Convert::ToBoolean(String^) metodi richiedono la stringa da convertire da "True", "true", "False" o "false". Qualsiasi altro valore genererà un FormatException (eccezione).

    • DateTime e DateTimeOffset. Tutti i dati di data e ora viene interpretato in base alle convenzioni di formattazione di impostazioni cultura specifiche: la lingua thread corrente (o, in alcuni casi, le impostazioni cultura dominio applicazione corrente), le impostazioni cultura invarianti o impostazioni cultura specificate. Quando si chiama il DateTime::ParseExact(String^, String^, IFormatProvider^, DateTimeStyles) e DateTimeOffset::ParseExact(String^, array<String^>^, IFormatProvider^, DateTimeStyles) metodi, data e ora devono essere conformi esattamente a un modello specificato da una o più stringhe di formato standard o stringhe di formato personalizzate forniti come argomenti nella chiamata al metodo. Se non è conforme a un modello di impostazioni cultura specifiche previsto, un FormatException viene generata un'eccezione. Ciò significa che data e ora di dati salvati in un formato specifico delle impostazioni cultura su un sistema potrebbero non vengono analizzate correttamente in un altro sistema.

      Per ulteriori informazioni sull'analisi di date e ore, vedere Analisi delle stringhe di data e ora in .NET Framework e la documentazione per il metodo che ha generato l'eccezione.

    • GUID. La rappresentazione di stringa di un GUID deve essere costituito da 32 cifre esadecimali (0-F) e deve essere in uno di output da cinque formati di Guid::ToString metodo. Per altre informazioni, vedere il metodo Guid::Parse.

    • Tipi numerici, inclusi tutti gli integer, numeri interi senza segno e tipi a virgola mobile. La stringa da analizzare deve contenere le cifre latine di 0-9. Un segno positivo o negativo, il separatore decimale, separatori di gruppi e simbolo di valuta inoltre sono consentite. Tentativo di analizzare una stringa che contiene qualsiasi altro carattere sempre genera un FormatException (eccezione).

      Tutte le stringhe numeriche vengono interpretate in base alle convenzioni di formattazione di impostazioni cultura specifiche: la lingua thread corrente (o, in alcuni casi, le impostazioni cultura dominio applicazione corrente), le impostazioni cultura invarianti o impostazioni cultura specificate. Di conseguenza, una stringa numerica viene analizzata utilizzando le convenzioni delle impostazioni cultura potrebbe non riuscire quando si utilizza le convenzioni di un altro.

      Per ulteriori informazioni sull'analisi di stringhe numeriche, vedere Analisi di stringhe numeriche in .NET Framework e la documentazione per il metodo specifico che ha generato l'eccezione.

    • Intervalli di tempo. La stringa da analizzare deve essere nel formato indipendente dalle impostazioni cultura fisso o in un formato dipendenti dalle impostazioni cultura definite dalle impostazioni cultura del thread corrente (o, in alcuni casi, le impostazioni cultura dominio applicazione corrente), le impostazioni cultura invarianti o impostazioni cultura specificate. Se la stringa non è in un formato appropriato o se il valore minimo, i giorni, ore, e non sono presenti componenti minuti dell'intervallo di tempo, il metodo di analisi genera un FormatException (eccezione). Per ulteriori informazioni, vedere la documentazione per il TimeSpan metodo che ha generato l'eccezione di analisi.

  • Un tipo implementa il IFormattable interfaccia, che supporta le stringhe di formato che definiscono come un oggetto viene convertito nella rappresentazione di stringa e viene utilizzata una stringa di formato non valido. Questo è più comune in un'operazione di formattazione. Nell'esempio seguente, la stringa di formato standard "Q" viene utilizzata in una stringa di formato composto per formattare un numero. Tuttavia, non è valido "Q" stringa di formato standard.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    Questa eccezione comporta che da un errore di codifica. Per correggere l'errore, rimuovere la stringa di formato o sostituire uno valido. Nell'esempio seguente corregge l'errore sostituendo la stringa di formato non valido con la stringa di formato "C" (valuta).

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    Oggetto FormatException eccezione può essere generata anche tramite l'analisi di metodi, ad esempio DateTime::ParseExact e Guid::ParseExact, che richiedono la stringa da analizzare per corrispondere esattamente al modello specificato da una stringa di formato. Nell'esempio seguente, la rappresentazione di stringa di un GUID deve essere conforme al modello specificato dalla stringa di formato standard "G". Tuttavia, il Guid implementazione della struttura di IFormattable non supporta la stringa di formato "G".

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    Questa eccezione comporta anche da un errore di codifica. Per correggere l'errore, chiamare un metodo di analisi che non richiede un formato preciso, ad esempio DateTime::Parse o Guid::Parse, oppure specificare una stringa di formato valido. Nell'esempio seguente corregge l'errore chiamando il Guid::Parse metodo.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.
  • Uno o più degli indici degli elementi di formato in un stringa di formato composto è maggiore di indici degli elementi nella matrice di oggetti parametro o elenco. Nell'esempio seguente, l'indice più grande di un elemento di formato nella stringa di formato è 3. Poiché gli indici degli elementi nell'elenco di oggetti in base zero, la stringa di formato richiederebbe l'elenco di oggetti di quattro elementi. Bensì con solo tre dat, temp, e scale, in modo che il codice comporta un FormatException eccezione in fase di esecuzione:.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    In questo caso, il FormatException eccezione è il risultato di errore per gli sviluppatori. È necessario correggere anziché gestito in un try/catch blocco verificando che ogni elemento nell'elenco di oggetti corrisponde all'indice di un elemento di formato. Per correggere questo esempio, modificare l'indice del secondo elemento di formato per fare riferimento il dat variabile e decremento l'indice di ogni elemento di formato successive da uno.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.
  • La stringa di formato composto non è corretta. In questo caso, il FormatException eccezione è sempre un risultato di errore per gli sviluppatori. È necessario correggere anziché gestito in un try/catch blocco.

    Tentativo di inserire le parentesi graffe letterali in una stringa, come nell'esempio seguente viene, verrà generata l'eccezione.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    La tecnica consigliata per l'inclusione di valori letterali parentesi graffe in una stringa di formato composto è includerli nell'elenco di oggetti e utilizzare gli elementi di formato per inserirli nella stringa di risultato. Ad esempio, è possibile modificare la stringa di formato composto precedente come illustrato di seguito.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    L'eccezione viene generata anche se la stringa di formato contiene un errore di digitazione. La seguente chiamata di String::Format metodo omette una parentesi graffa di chiusura e le coppie di parentesi graffa aperta con una parentesi di chiusura.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    Per correggere l'errore, verificare che tutti apertura e chiusura tra parentesi graffe corrispondenti.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.
  • Sono stati forniti nell'elenco di oggetti in un metodo come una matrice di parametri fortemente tipizzati, di formattazione composita e FormatException eccezione indica che l'indice di uno o più elementi di formato supera il numero di argomenti nell'elenco di oggetti. Ciò si verifica perché non esiste alcuna conversione esplicita tra i tipi di matrice, ma che il compilatore considera la matrice come un singolo argomento anziché come una matrice di parametri. Ad esempio, la seguente chiamata al Console::WriteLine(String^, array<Object^>^) genererà un FormatException eccezione, anche se l'indice più alto degli elementi di formato è 3 e la matrice di parametri di tipo Int32 dispone di quattro elementi.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

    Invece di gestire questa eccezione, pertanto è necessario eliminare la causa. Poiché Visual Basic né in c# è possibile convertire una matrice di interi a una matrice di oggetti, è necessario eseguire la conversione prima di chiamare il metodo di formattazione composita. Nell'esempio seguente fornisce un'implementazione.

    Non sono attualmente disponibili esempi di codice o questo linguaggio potrebbe non essere supportato.

FormatException utilizza HRESULT COR_E_FORMAT con valore 0x80131537.

La FormatException classe deriva da Exception e viene aggiunto alcun membri univoci. Per un elenco di valori di proprietà iniziali per un'istanza di FormatException, vedere il FormatException costruttori.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: