FormatException FormatException FormatException FormatException Class

Definicja

Wyjątek, który jest generowany, gdy format argumentu jest nieprawidłowy lub gdy ciąg formatu złożonego został nieprawidłowo sformułowany.The exception that is thrown when the format of an argument is invalid, or when a composite format string is not well formed.

public ref class FormatException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class FormatException : SystemException
type FormatException = class
    inherit SystemException
Public Class FormatException
Inherits SystemException
Dziedziczenie
Pochodne
Atrybuty

Uwagi

A FormatException wyjątku może zostać wygenerowany dla jednego z następujących powodów:A FormatException exception can be thrown for one of the following reasons:

  • W wywołaniu do metody, która konwertuje ciąg na inny typ danych ciągu nie jest zgodny z wymaganym wzorcem.In a call to a method that converts a string to some other data type, the string doesn't conform to the required pattern. Ten błąd zazwyczaj występuje podczas wywoływania niektóre metody Convert klasy i Parse i ParseExact metody niektórych typów.This typically occurs when calling some methods of the Convert class and the Parse and ParseExact methods of some types.

    W większości przypadków, zwłaszcza, jeśli ciąg, który podczas konwertowania danych wejściowych przez użytkownika lub odczytu z pliku, należy użyć try/catch blokowania i obsługiwać FormatException wyjątek, jeśli konwersja nie powiedzie się.In most cases, particularly if the string that you're converting is input by a user or read from a file, you should use a try/catch block and handle the FormatException exception if the conversion is unsuccessful. Możesz również zastąpić wywołanie metody konwersji wywołanie TryParse lub TryParseExact metody, jeśli taka istnieje.You can also replace the call to the conversion method with a call to a TryParse or TryParseExact method, if one exists. Jednak FormatException wyjątek, który jest zgłaszany, gdy próbujesz przeanalizować składni ciągu wstępnie zdefiniowanych lub zakodowane wskazuje na błąd programu.However, a FormatException exception that is thrown when you're trying to parse a predefined or hard-coded string indicates a program error. W takim przypadku należy Popraw błąd zamiast możesz obsłużyć wyjątek.In this case, you should correct the error rather than handle the exception.

    Konwersja ciągu na następujące typy w System przestrzeni nazw może zgłosić FormatException wyjątek:The conversion of a string to the following types in the System namespace can throw a FormatException exception:

    • Boolean.Boolean. Boolean.Parse(String) i Convert.ToBoolean(String) metody wymagają ciąg można przekonwertować na "True", "true", "False" lub "false".The Boolean.Parse(String) and Convert.ToBoolean(String) methods require the string to be converted to be "True", "true", "False", or "false". Dowolna inna wartość zgłasza FormatException wyjątku.Any other value throws a FormatException exception.

    • DateTime i DateTimeOffset.DateTime and DateTimeOffset. Wszystkie dane daty i godziny jest interpretowany w zależności od Konwencji formatowania określonej kultury: Bieżąca kultura wątku (lub w niektórych przypadkach bieżącej kultury domeny aplikacji), niezmiennej kultury lub określonej kultury.All date and time data is interpreted based on the formatting conventions of a particular culture: either the current thread culture (or, in some cases, the current application domain culture), the invariant culture, or a specified culture. Gdy wywołujesz DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) i DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metod, dane daty i godziny również musi odpowiadać dokładnie do wzorca określonego przez co najmniej jeden ciągi w standardowym formacie lub niestandardowe ciągi formatujące są dostarczane jako argumentów w wywołaniu metody.When you call the DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) and DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) methods, date and time data must also conform exactly to a pattern specified by one or more standard format strings or custom format strings that are provided as arguments in the method call. Jeśli nie jest zgodny z oczekiwanym wzorcem specyficzne dla kultury FormatException wyjątku.If it doesn't conform to an expected culture-specific pattern, a FormatException exception is thrown. Oznacza to, że dane daty i godziny, które są zapisywane w formacie specyficzne dla kultury na jeden system nie może pomyślnie przeanalizować w innym systemie.This means that date and time data saved in a culture-specific format on one system might not parse successfully on another system.

      Aby uzyskać więcej informacji na temat analizowania daty i godziny, zobacz ciągi analizy daty i godziny i dokumentację dla metody, która zgłosiła wyjątek.For more information about parsing dates and times, see Parsing Date and Time Strings and the documentation for the method that threw the exception.

    • GUIDs.GUIDs. Reprezentacja ciągu identyfikatora GUID musi zawierać 32 cyfry szesnastkowe (0-F) i musi należeć do jednej z pięciu formaty danych wyjściowych przez Guid.ToString metody.The string representation of a GUID must consist of 32 hexadecimal digits (0-F), and must be in one of the five formats output by the Guid.ToString method. Aby uzyskać więcej informacji, zobacz Guid.Parse metody.For more information, see the Guid.Parse method.

    • Typy liczbowe, w tym wszystko podpisane liczby całkowite, liczb całkowitych bez znaku i typów zmiennoprzecinkowych.Numeric types, including all signed integers, unsigned integers, and floating-point types. Ciąg, który ma być analizowany, musi składać się z alfabetu łacińskiego cyfry 0-9.The string to be parsed must consist of the Latin digits 0-9. Dodatnia lub ujemna znak separatora dziesiętnego, separatory grup i symbol waluty może być również dozwolony.A positive or negative sign, decimal separator, group separators, and currency symbol may also be permitted. Próby przeprowadzenia analizy ciąg, który zawiera inne znak zawsze zgłasza FormatException wyjątku.Trying to parse a string that contains any other character always throws a FormatException exception.

      Wszystkie ciągi numeryczne są interpretowane w oparciu o Konwencji formatowania określonej kultury: Bieżąca kultura wątku (lub w niektórych przypadkach bieżącej kultury domeny aplikacji), niezmiennej kultury lub określonej kultury.All numeric strings are interpreted based on the formatting conventions of a particular culture: either the current thread culture (or, in some cases, the current application domain culture), the invariant culture, or a specified culture. W rezultacie ciągów liczbowych, który jest analizowany przy użyciu konwencji kultury jeden może zakończyć się niepowodzeniem przy użyciu konwencji innego.As a result, a numeric string that is parsed by using the conventions of one culture might fail when using the conventions of another.

      Aby uzyskać więcej informacji na temat analizowanie ciągów numerycznych, zobacz analizowanie ciągów liczbowych i dokumentację dla określonej metody, która zgłosiła wyjątek.For more information about parsing numeric strings, see Parsing Numeric Strings and the documentation for the specific method that threw the exception.

    • Przedziały czasowe.Time intervals. Ciąg, który ma być analizowany, musi być w stałym formacie niewrażliwość na ustawienia kulturowe lub w formacie wrażliwość na ustawienia kulturowe, zdefiniowane przez bieżącą kulturę wątku (lub, w niektórych przypadkach bieżącej kultury domeny aplikacji), niezmiennej kultury lub określonej kultury.The string to be parsed must be either in fixed culture-insensitive format or in a culture-sensitive format defined by the current thread culture (or, in some cases, the current application domain culture), the invariant culture, or a specified culture. Jeśli ciąg nie znajduje się w odpowiednim formacie, lub w przypadku, w minimalnym, dni, godzin, minut składniki przedział czasu nie są dostępne, metoda analizowania zgłasza FormatException wyjątku.If the string isn't in an appropriate format, or if, at the minimum, the days, hours, and minutes components of the time interval aren't present, the parsing method throws a FormatException exception. Aby uzyskać więcej informacji, zobacz dokumentację dla TimeSpan analizy metody, która zgłosiła wyjątek.For more information, see the documentation for the TimeSpan parsing method that threw the exception.

  • Typ implementuje IFormattable interfejs, który obsługuje ciągi formatu, które definiują, jak obiekt jest konwertowana na jego reprezentację ciągu i nieprawidłowy ciąg formatu jest używany.A type implements the IFormattable interface, which supports format strings that define how an object is converted to its string representation, and an invalid format string is used. Jest to najbardziej rozpowszechnione w operacji formatowania.This is most common in a formatting operation. W poniższym przykładzie ciąg formatu standardowego "Q" jest używany w ciągu formatu złożonego numeru formatowania.In the following example, the "Q" standard format string is used in a composite format string to format a number. Jednak "Q" nie jest prawidłowym ciąg formatu standardowego.However, "Q" is not a valid standard format string.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          decimal price = 169.32m;
          Console.WriteLine("The cost is {0:Q2}.", price);
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: System.FormatException: Format specifier was invalid.
    //       at System.Number.FormatDecimal(Decimal value, String format, NumberFormatInfo info)
    //       at System.Decimal.ToString(String format, IFormatProvider provider)
    //       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    //       at System.IO.TextWriter.WriteLine(String format, Object arg0)
    //       at System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0)
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim price As Decimal = 169.32d
          Console.WriteLine("The cost is {0:Q2}.", price)
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: System.FormatException: Format specifier was invalid.
    '       at System.Number.FormatDecimal(Decimal value, String format, NumberFormatInfo info)
    '       at System.Decimal.ToString(String format, IFormatProvider provider)
    '       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    '       at System.IO.TextWriter.WriteLine(String format, Object arg0)
    '       at System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0)
    '       at Example.Main()
    

    Ten wyjątek jest wynikiem błędu w kodzie.This exception results from a coding error. Aby poprawić ten błąd, Usuń ciąg formatu lub Zastąp prawidłowa.To correct the error, either remove the format string or substitute a valid one. Poniższy przykład naprawia ten błąd, zastępując ciąg formatu nieprawidłowy ciąg formatu "C" (currency).The following example corrects the error by replacing the invalid format string with the "C" (currency) format string.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          decimal price = 169.32m;
          Console.WriteLine("The cost is {0:C2}.", price);
       }
    }
    // The example displays the following output:
    //    The cost is $169.32.
    
    Module Example
       Public Sub Main()
          Dim price As Decimal = 169.32d
          Console.WriteLine("The cost is {0:C2}.", price)
       End Sub
    End Module
    ' The example displays the following output:
    '   The cost is $169.32.
    

    A FormatException również zgłoszony wyjątek analizując metod, takich jak DateTime.ParseExact i Guid.ParseExact, ciąg, który ma być analizowany, aby dokładnie pasował do wzorca określonego przez ciąg formatu, który wymaga.A FormatException exception can also be thrown by parsing methods, such as DateTime.ParseExact and Guid.ParseExact, that require the string to be parsed to conform exactly to the pattern specified by a format string. W poniższym przykładzie ciąg reprezentujący identyfikator GUID oczekuje się, aby były zgodne ze wzorcem określona przez ciąg formatu standardowego "G".In the following example, the string representation of a GUID is expected to conform to the pattern specified by the "G" standard format string. Jednak Guid implementacja struktury IFormattable nie obsługuje ciąg formatu "G".However, the Guid structure's implementation of IFormattable does not support the "G" format string.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          string guidString = "ba748d5c-ae5f-4cca-84e5-1ac5291c38cb";
          Console.WriteLine(Guid.ParseExact(guidString, "G"));
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: System.FormatException: 
    //       Format String can be only "D", "d", "N", "n", "P", "p", "B", "b", "X" or "x".
    //       at System.Guid.ParseExact(String input, String format)
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim guidString As String = "ba748d5c-ae5f-4cca-84e5-1ac5291c38cb"
          Console.WriteLine(Guid.ParseExact(guidString, "G"))
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: System.FormatException: 
    '       Format String can be only "D", "d", "N", "n", "P", "p", "B", "b", "X" or "x".
    '       at System.Guid.ParseExact(String input, String format)
    '       at Example.Main()
    

    Ten wyjątek również jest wynikiem błędu w kodzie.This exception also results from a coding error. Aby go rozwiązać, wywołanie metody analizy, która nie wymaga takich jak dokładny format DateTime.Parse lub Guid.Parse, lub Zastąp poprawny ciąg formatujący.To correct it, call a parsing method that doesn't require a precise format, such as DateTime.Parse or Guid.Parse, or substitute a valid format string. Poniższy przykład naprawia błąd przez wywołanie metody Guid.Parse metody.The following example corrects the error by calling the Guid.Parse method.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          string guidString = "ba748d5c-ae5f-4cca-84e5-1ac5291c38cb";
          Console.WriteLine(Guid.Parse(guidString));
       }
    }
    // The example displays the following output:
    //    ba748d5c-ae5f-4cca-84e5-1ac5291c38cb
    
    Module Example
       Public Sub Main()
          Dim guidString As String = "ba748d5c-ae5f-4cca-84e5-1ac5291c38cb"
          Console.WriteLine(Guid.Parse(guidString))
       End Sub
    End Module
    ' The example displays the following output:
    '   ba748d5c-ae5f-4cca-84e5-1ac5291c38cb
    
  • Co najmniej jednym z indeksów pozycje formatu w ciąg formatu złożonego jest większe niż indeksy elementów w tablicy listy lub parametr obiektu.One or more of the indexes of the format items in a composite format string is greater than the indexes of the items in the object list or parameter array. W poniższym przykładzie największego indeksu elementu formatu w ciągu formatu jest 3.In the following example, the largest index of a format item in the format string is 3. Ponieważ indeksy elementów na liście obiektów są oparte na zerze, ten ciąg formatowania wymagałoby lista obiektów ma cztery elementy.Because the indexes of items in the object list are zero-based, this format string would require the object list to have four items. Zamiast tego ma tylko trzy dat, temp, i scale, dlatego ten kod powoduje FormatException wyjątek w czasie wykonywania:.Instead, it has only three, dat, temp, and scale, so the code results in a FormatException exception at run time:.

    using System;
    
    public class Example
    {
       public enum TemperatureScale 
       { Celsius, Fahrenheit, Kelvin }
    
       public static void Main()
       {
          String info = GetCurrentTemperature();
          Console.WriteLine(info);
       }
    
       private static String GetCurrentTemperature()
       {
          DateTime dat = DateTime.Now;
          Decimal temp = 20.6m;
          TemperatureScale scale = TemperatureScale.Celsius;
          String result;
          
          result = String.Format("At {0:t} on {1:D}, the temperature is {2:F1} {3:G}",
                                 dat, temp, scale);    
          return result;
       }
    }
    // The example displays output like the following:
    //    Unhandled Exception: System.FormatException: Format specifier was invalid.
    //       at System.Number.FormatDecimal(Decimal value, String format, NumberFormatInfo info)
    //       at System.Decimal.ToString(String format, IFormatProvider provider)
    //       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    //       at System.String.Format(IFormatProvider provider, String format, Object[] args)
    //       at Example.Main()
    
    Module Example
       Public Enum TemperatureScale As Integer
          Celsius
          Fahrenheit
          Kelvin
       End Enum
    
       Public Sub Main()
          Dim info As String = GetCurrentTemperature()
          Console.WriteLine(info)
       End Sub
    
       Private Function GetCurrentTemperature() As String
          Dim dat As Date = Date.Now
          Dim temp As Decimal = 20.6d
          Dim scale As TemperatureScale = TemperatureScale.Celsius
          Dim result As String 
          
          result = String.Format("At {0:t} on {1:D}, the temperature is {2:F1} {3:G}",
                                 dat, temp, scale)    
          Return result
       End Function
    End Module
    ' The example displays output like the following:
    '    Unhandled Exception: System.FormatException: Format specifier was invalid.
    '       at System.Number.FormatDecimal(Decimal value, String format, NumberFormatInfo info)
    '       at System.Decimal.ToString(String format, IFormatProvider provider)
    '       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    '       at System.String.Format(IFormatProvider provider, String format, Object[] args)
    '       at Example.Main()
    

    W tym przypadku FormatException wyjątek jest wynikiem błędu dla deweloperów.In this case, the FormatException exception is a result of developer error. Jego powinny być poprawione, a nie obsługiwane w try/catch bloku, upewniając się, że każdy element na liście obiektów odpowiada indeks elementu formatu.It should be corrected rather than handled in a try/catch block by making sure that each item in the object list corresponds to the index of a format item. Aby rozwiązać problem w tym przykładzie, Zmień indeks drugi element formatu do odwoływania się do dat zmienną i dekrementacji indeks każdy element formatu kolejnych o jeden.To correct this example, change the index of the second format item to refer to the dat variable, and decrement the index of each subsequent format item by one.

    using System;
    
    public class Example
    {
       public enum TemperatureScale 
       { Celsius, Fahrenheit, Kelvin }
    
       public static void Main()
       {
          String info = GetCurrentTemperature();
          Console.WriteLine(info);
       }
    
       private static String GetCurrentTemperature()
       {
          DateTime dat = DateTime.Now;
          Decimal temp = 20.6m;
          TemperatureScale scale = TemperatureScale.Celsius;
          String result;
          
          result = String.Format("At {0:t} on {0:D}, the temperature is {1:F1} {2:G}",
                                 dat, temp, scale);    
          return result;
       }
    }
    // The example displays output like the following:
    //    At 10:40 AM on Wednesday, June 04, 2014, the temperature is 20.6 Celsius
    
    Module Example
       Public Enum TemperatureScale As Integer
          Celsius
          Fahrenheit
          Kelvin
       End Enum
    
       Public Sub Main()
          Dim info As String = GetCurrentTemperature()
          Console.WriteLine(info)
       End Sub
    
       Private Function GetCurrentTemperature() As String
          Dim dat As Date = Date.Now
          Dim temp As Decimal = 20.6d
          Dim scale As TemperatureScale = TemperatureScale.Celsius
          Dim result As String 
          
          result = String.Format("At {0:t} on {0:D}, the temperature is {1:F1} {2:G}",
                                 dat, temp, scale)    
          Return result
       End Function
    End Module
    ' The example displays output like the following:
    '       At 10:40 AM on Wednesday, June 04, 2014, the temperature is 20.6 Celsius
    
  • Ciąg formatu złożonego nie jest poprawnie sformułowany.The composite format string isn't well-formed. W takim przypadku FormatException wyjątek jest zawsze wynikiem błędu dla deweloperów.When this happens, the FormatException exception is always a result of developer error. Jego powinny być poprawione, a nie obsługiwane w try/catch bloku.It should be corrected rather than handled in a try/catch block.

    Podjęcie próby, które mają zostać objęte nawiasów klamrowych literału ciągu, zgodnie z poniższym przykładzie jest, spowoduje zgłoszenie wyjątku.Trying to include literal braces in a string, as the following example does, will throw the exception.

    result = String.Format("The text has {0} '{' characters and {1} '}' characters.",
                           nOpen, nClose);
    
    result = String.Format("The text has {0} '{' characters and {1} '}' characters.",
                           nOpen, nClose)
    

    To zalecana technika, w tym nawiasów klamrowych literału ciągu formatu złożonego jest umieszczone na liście obiektów i użyj elementów formatu, aby wstawić je do ciągu wynikowego.The recommended technique for including literal braces in a composite format string is to include them in the object list and use format items to insert them into the result string. Na przykład można zmodyfikować poprzedni ciąg formatu złożonego, jak pokazano poniżej.For example, you can modify the previous composite format string as shown here.

    string result;
    int nOpen = 1;
    int nClose = 2;
    result = String.Format("The text has {0} '{{' characters and {1} '}}' characters.",
                           nOpen, nClose);
    Console.WriteLine(result);
    
    result = String.Format("The text has {0} '{{' characters and {1} '}}' characters.",
                           nOpen, nClose)
    

    Wyjątek również jest generowany, jeśli Twoja ciąg formatu zawiera błąd pisowni.The exception is also thrown if your format string contains a typo. Następujące wywołanie do String.Format metoda pomija zamykającego nawiasu klamrowego i pary otwierający nawias klamrowy za pomocą nawias zamykający.The following call to the String.Format method omits a closing brace and pairs an opening brace with a closing bracket.

    int n1 = 10;
    int n2 = 20;
    String result = String.Format("{0 + {1] = {2}", 
                                  n1, n2, n1 + n2);
    
    Dim n1 As Integer = 10
    Dim n2 As Integer = 20
    Dim result As String = String.Format("{0 + {1] = {2}", 
                                         n1, n2, n1 + n2)
    

    Popraw błąd, upewnij się, czy odpowiadają wszystkie otwierających i zamykających nawiasów klamrowych.To correct the error, ensure that all opening and closing braces correspond.

    String result = String.Format("{0} + {1} = {2}", 
                                  n1, n2, n1 + n2);
    
    Dim result As String = String.Format("{0} + {1} = {2}", 
                                         n1, n2, n1 + n2)
    
  • Została podana lista obiektów w metoda jako tablicę silnie typizowany parametr formatowania złożonego i FormatException wyjątku wskazuje, że indeks jeden lub więcej elementów formatu przekracza liczbę argumentów, na liście obiektów.You've supplied the object list in a composite formatting method as a strongly typed parameter array, and the FormatException exception indicates that the index of one or more format items exceeds the number of arguments in the object list. Dzieje się tak, ponieważ istnieje nie jawnej konwersji między typami tablic, więc zamiast tego kompilator traktuje tablicy jako pojedynczy argument, a nie jako tablicy parametrów.This occurs because no explicit conversion between array types exists, so instead the compiler treats the array as a single argument rather than as a parameter array. Na przykład, następujące wywołanie do Console.WriteLine(String, Object[]) metoda zgłasza wyjątek FormatException wyjątku, mimo że najwyższy indeks elementów formatu 3 i tablicy parametrów typu Int32 ma cztery elementy.For example, the following call to the Console.WriteLine(String, Object[]) method throws a FormatException exception, although the highest index of the format items is 3, and the parameter array of type Int32 has four elements.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          Random rnd = new Random();
          int[]  numbers = new int[4];
          int total = 0;
          for (int ctr = 0; ctr <= 2; ctr++) {
             int number = rnd.Next(1001);
             numbers[ctr] = number;
             total += number;
          }   
          numbers[3] = total;
          Console.WriteLine("{0} + {1} + {2} = {3}", numbers);   
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: 
    //    System.FormatException: 
    //       Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
    //       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    //       at System.IO.TextWriter.WriteLine(String format, Object arg0)
    //       at System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0)
    //       at Example.Main()
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim rnd As New Random()
          Dim numbers(3) As Integer
          Dim total As Integer = 0
          For ctr = 0 To 2
             Dim number As Integer = rnd.Next(1001)
             numbers(ctr) = number
             total += number
          Next
          numbers(3) = total
          Console.WriteLine("{0} + {1} + {2} = {3}", numbers)   
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: 
    '    System.FormatException: 
    '       Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
    '       at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    '       at System.IO.TextWriter.WriteLine(String format, Object arg0)
    '       at System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0)
    '       at Example.Main()
    

    Zamiast obsługi tego wyjątku, należy wyeliminować jego przyczyny.Instead of handling this exception, you should eliminate its cause. Ponieważ Visual Basic ani C# można przekonwertować tablicę liczb całkowitych na tablicę obiektów, należy dokonać konwersji, samodzielnie przed wywołaniem metody formatowania złożonego.Because neither Visual Basic nor C# can convert an integer array to an object array, you have to perform the conversion yourself before calling the composite formatting method. W poniższym przykładzie przedstawiono jedna implementacja.The following example provides one implementation.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          Random rnd = new Random();
          int[]  numbers = new int[4];
          int total = 0;
          for (int ctr = 0; ctr <= 2; ctr++) {
             int number = rnd.Next(1001);
             numbers[ctr] = number;
             total += number;
          }   
          numbers[3] = total;
          object[] values = new object[numbers.Length];
          numbers.CopyTo(values, 0);
          Console.WriteLine("{0} + {1} + {2} = {3}", values);   
       }
    }
    // The example displays output like the following:
    //        477 + 956 + 901 = 2334
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim rnd As New Random()
          Dim numbers(3) As Integer
          Dim total As Integer = 0
          For ctr = 0 To 2
             Dim number As Integer = rnd.Next(1001)
             numbers(ctr) = number
             total += number
          Next
          numbers(3) = total
          Dim values(numbers.Length - 1) As Object
          numbers.CopyTo(values, 0) 
          Console.WriteLine("{0} + {1} + {2} = {3}", values)   
       End Sub
    End Module
    ' The example displays output like the following:
    '       477 + 956 + 901 = 2334
    

FormatException używa COR_E_FORMAT HRESULT, która ma wartość 0x80131537.FormatException uses the HRESULT COR_E_FORMAT, which has the value 0x80131537.

FormatException Klasa pochodzi od Exception i dodaje nie unikatowych elementów członkowskich.The FormatException class derives from Exception and adds no unique members. Aby uzyskać listę początkowe wartości właściwości wystąpienia FormatException, zobacz FormatException konstruktorów.For a list of initial property values for an instance of FormatException, see the FormatException constructors.

Konstruktory

FormatException() FormatException() FormatException() FormatException()

Inicjuje nowe wystąpienie klasy FormatException klasy.Initializes a new instance of the FormatException class.

FormatException(SerializationInfo, StreamingContext) FormatException(SerializationInfo, StreamingContext) FormatException(SerializationInfo, StreamingContext) FormatException(SerializationInfo, StreamingContext)

Inicjuje nowe wystąpienie klasy FormatException klasy z serializowanych danych.Initializes a new instance of the FormatException class with serialized data.

FormatException(String) FormatException(String) FormatException(String) FormatException(String)

Inicjuje nowe wystąpienie klasy FormatException klasy przy użyciu określonego komunikatu o błędzie.Initializes a new instance of the FormatException class with a specified error message.

FormatException(String, Exception) FormatException(String, Exception) FormatException(String, Exception) FormatException(String, Exception)

Inicjuje nowe wystąpienie klasy FormatException klasy przy użyciu określonego komunikatu o błędzie i odwołania do wewnętrznego wyjątku, który jest przyczyną tego wyjątku.Initializes a new instance of the FormatException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Właściwości

Data Data Data Data

Pobiera kolekcję par klucz/wartość, które zawierają dodatkowe informacje zdefiniowane przez użytkownika o wyjątku.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Pobiera lub ustawia łącze, aby plik pomocy skojarzony z tym wyjątkiem.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Pobiera lub ustawia wartość HRESULT, kodowane wartość liczbową, która jest przypisana do określonego wyjątku.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Pobiera Exception wystąpienia, który spowodował bieżący wyjątek.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Pobiera komunikat, który opisuje bieżący wyjątek.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Pobiera lub ustawia nazwę aplikacji lub obiekt, który powoduje błąd.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Pobiera reprezentację ciągu natychmiastowego ramek na stosie wywołań.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Pobiera metodę, która bieżący wyjątek.Gets the method that throws the current exception.

(Inherited from Exception)

Metody

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

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

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

Po przesłonięciu w klasie pochodnej zwraca Exception czyli główną przyczynę jeden lub kilka kolejnych wyjątków.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()

Służy jako domyślnej funkcji skrótu.Serves as the default hash function.

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

W przypadku przesłonięcia w klasie pochodnej, ustawia SerializationInfo przy użyciu informacji o wyjątku.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Tworzy płytką kopię bieżącego Object.Creates a shallow copy of the current Object.

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

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Zdarzenia

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Występuje, gdy wyjątek jest serializowana. Aby utworzyć obiekt stan wyjątku, który zawiera serializowane dane o wyjątku.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Dotyczy

Zobacz też