FormatException FormatException FormatException FormatException Class

정의

인수의 형식이 올바르지 않거나 합성 서식 문자열이 잘못 만들어진 경우 예외가 throw됩니다.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
상속
파생
특성

설명

FormatException 다음 이유 중 하나에 대 한 예외를 throw 합니다.A FormatException exception can be thrown for one of the following reasons:

  • 다른 데이터 형식을 문자열로 변환 하는 메서드 호출에서 문자열은 필수 패턴에 맞지 않습니다.In a call to a method that converts a string to some other data type, the string doesn't conform to the required pattern. 일부 메서드를 호출 하는 경우 일반적으로 발생 합니다 Convert 클래스 및 ParseParseExact 일부 형식의 메서드.This typically occurs when calling some methods of the Convert class and the Parse and ParseExact methods of some types.

    대부분의 경우에서 변환 하는 문자열을 파일에서 읽거나 사용자가 입력 하는 경우에 특히 사용 해야는 try/catch 차단 하 고 처리를 FormatException 변환이 실패 한 경우 예외입니다.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. 변환 메서드 호출에 대 한 호출을 사용 하 여 바꿀 수도 있습니다는 TryParse 또는 TryParseExact 메서드를 사용할 수 있는 경우.You can also replace the call to the conversion method with a call to a TryParse or TryParseExact method, if one exists. 그러나는 FormatException 미리 정의 된 또는 하드 코드 된 문자열을 구문 분석 하려는 경우 throw 되는 예외는 프로그램 오류를 나타냅니다.However, a FormatException exception that is thrown when you're trying to parse a predefined or hard-coded string indicates a program error. 이 경우 오류를 수정 대신 해야 예외를 처리 합니다.In this case, you should correct the error rather than handle the exception.

    다음 형식 문자열로 변환 합니다 System 네임 스페이스를 throw 할 수는 FormatException 예외:The conversion of a string to the following types in the System namespace can throw a FormatException exception:

    • Boolean.Boolean. 합니다 Boolean.Parse(String)Convert.ToBoolean(String) 메서드 문자열을 변환할 수 "True", "true", "False" 또는 "false" 필요 합니다.The Boolean.Parse(String) and Convert.ToBoolean(String) methods require the string to be converted to be "True", "true", "False", or "false". 다른 값을 throw 한 FormatException 예외입니다.Any other value throws a FormatException exception.

    • DateTimeDateTimeOffset을 참조하세요.DateTime and DateTimeOffset. 모든 날짜 및 시간 데이터를 특정 문화권의 서식 규칙에 따라 해석 됩니다: 현재 스레드 문화권 (또는 경우에 따라 현재 응용 프로그램 도메인 문화권), 고정 문화권 또는 지정된 된 문화권입니다.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. 호출 하는 경우는 DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) 하 고 DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) 메서드를 날짜 및 시간 데이터도 따라야 정확 하 게 하나 이상의 지정 된 패턴 표준 형식 문자열 또는 사용자 지정 형식 문자열 메서드 호출에서 인수로 제공 되는 합니다.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. 예상 되는 culture 별, 패턴을 준수 하지 않는 경우는 FormatException 예외가 throw 됩니다.If it doesn't conform to an expected culture-specific pattern, a FormatException exception is thrown. 이 한 시스템에서 문화권별 형식으로 저장 하는 날짜 및 시간 데이터 수를 구문 분석할 성공적으로 다른 시스템에서 것을 의미 합니다.This means that date and time data saved in a culture-specific format on one system might not parse successfully on another system.

      날짜 및 시간 구문 분석 하는 방법에 대 한 자세한 내용은 참조 하세요. 구문 분석 하는 날짜 및 시간 문자열 및 예외를 발생 시킨 메서드에 대 한 설명서입니다.For more information about parsing dates and times, see Parsing Date and Time Strings and the documentation for the method that threw the exception.

    • Guid입니다.GUIDs. GUID의 문자열 표현을 32 자리 16 진수 (0-F) 구성 되어야 하며에서 다섯 가지 형식이 출력 중 하나에 있어야 합니다 Guid.ToString 메서드.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. 자세한 내용은 Guid.Parse 메서드를 참조하세요.For more information, see the Guid.Parse method.

    • 모든 부호 있는 정수, 부호 없는 정수 및 부동 소수점 형식을 포함 하 여 숫자 형식입니다.Numeric types, including all signed integers, unsigned integers, and floating-point types. 구문 분석 될 문자열 라틴어 숫자 0-9 구성 되어야 합니다.The string to be parsed must consist of the Latin digits 0-9. 양수 또는 음수 기호, 소수 구분 기호, 그룹 구분 기호 및 통화 기호가 허용 될 수 있습니다.A positive or negative sign, decimal separator, group separators, and currency symbol may also be permitted. 기타를 포함 하는 문자열을 구문 분석 하는 동안 throw 항상 문자는 FormatException 예외입니다.Trying to parse a string that contains any other character always throws a FormatException exception.

      모든 숫자 문자열을 특정 문화권의 서식 규칙에 따라 해석 됩니다: 현재 스레드 문화권 (또는 경우에 따라 현재 응용 프로그램 도메인 문화권), 고정 문화권 또는 지정된 된 문화권입니다.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. 결과적으로 한 문화권의 규칙을 사용 하 여 구문 분석 되는 숫자 문자열의 다른 규칙을 사용 하는 경우 실패할 수 있습니다.As a result, a numeric string that is parsed by using the conventions of one culture might fail when using the conventions of another.

      숫자 문자열 구문 분석 하는 방법에 대 한 자세한 내용은 참조 하십시오 숫자 문자열 구문 분석 및 예외를 발생 시킨 특정 메서드에 대 한 설명서입니다.For more information about parsing numeric strings, see Parsing Numeric Strings and the documentation for the specific method that threw the exception.

    • 시간 간격입니다.Time intervals. 구문 분석 될 문자열은 고정된 문화권을 구분 하지 않는 형식 또는 현재 스레드 문화권에 의해 (또는 경우에 따라 현재 응용 프로그램 도메인 문화권)에 정의 된 문화권 구분 형식에서 이어야 합니다. 고정 문화권 또는 지정된 된 문화권입니다.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. 문자열을 적절 한 형식으로 또는 경우에는 최소, 일, 시간, 아니며 시간 간격의 분 구성 요소를 사용할 수 없는 경우 구문 분석 메서드에서 throw 한 FormatException 예외입니다.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. 자세한 내용은 설명서를 참조 합니다 TimeSpan 예외를 발생 시킨 메서드를 구문 분석 합니다.For more information, see the documentation for the TimeSpan parsing method that threw the exception.

  • 형식이 구현 하는 IFormattable 인터페이스 개체를 문자열 표현으로 변환 됩니다 하는 방법을 정의 하는 형식 문자열 지원 하며, 잘못 된 서식 문자열 사용 됩니다.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. 서식 지정 작업에서 가장 일반적입니다.This is most common in a formatting operation. 다음 예에서 "Q" 표준 서식 문자열을 숫자의 형식을 지정 하려면 복합 형식 문자열에 사용 됩니다.In the following example, the "Q" standard format string is used in a composite format string to format a number. 그러나 "Q" 유효 하지 않거나 표준 형식 문자열합니다.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()
    

    코딩 오류에서이 예외가 발생합니다.This exception results from a coding error. 오류를 해결 하려면 형식 문자열을 제거 하거나 유효한 대체 합니다.To correct the error, either remove the format string or substitute a valid one. 다음 예제에서는 "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.
    

    FormatException 와 같은 메서드를 구문 분석 하 여 예외가 throw 될 수 있습니다 DateTime.ParseExactGuid.ParseExact필요로 하는 문자열에 지정 된 서식 문자열을 패턴에 정확히 맞게 구문 분석할 수입니다.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. 다음 예제에서는 GUID의 문자열 표현은 "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. 그러나 합니다 Guid 구조체의 구현의 IFormattable "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()
    

    이 예외는 또한 코딩 오류를 발생합니다.This exception also results from a coding error. 이 문제를 해결 하려면 같은 정확한 형식으로 필요 하지 않은 구문 분석 메서드를 호출 DateTime.Parse 또는 Guid.Parse, 또는 유효한 형식 문자열을 대체 합니다.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. 다음 예제에서는 호출 하 여 오류를 수정 합니다 Guid.Parse 메서드.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
    
  • 하나 이상의의 형식 항목의 인덱스를 복합 형식 문자열 개체 목록 또는 매개 변수 배열에 있는 항목의 인덱스 보다 큽니다.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. 다음 예제에서는 형식 문자열의 형식 항목의 가장 큰 인덱스는 3입니다.In the following example, the largest index of a format item in the format string is 3. 개체 목록에서 항목의 인덱스가 0부터 시작 되므로,이 형식 문자열은 4 개의 항목이 개체 목록을 해야 합니다.Because the indexes of items in the object list are zero-based, this format string would require the object list to have four items. 만 세 있기 대신 dat, temp, 및 scale이므로 코드를 FormatException 런타임 시 예외:입니다.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()
    

    이 경우에 FormatException 예외 개발자 오류의 결과입니다.In this case, the FormatException exception is a result of developer error. 이 수정 되지 않고 됩니다에서 처리를 try/catch 형식 항목의 인덱스에 개체 목록의 각 항목에에서 해당 하는지 확인 하 여 블록입니다.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. 이 예제를 수정 하려면 참조를 두 번째 형식 항목의 인덱스를 변경 합니다 dat 변수와 감소 하나씩 각 후속 서식 항목의 인덱스입니다.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
    
  • 복합 형식 문자열에 잘 구성 된 것은 아닙니다.The composite format string isn't well-formed. 이 경우는 FormatException 예외 항상 개발자 오류의 결과입니다.When this happens, the FormatException exception is always a result of developer error. 이 수정 되지 않고 됩니다에서 처리를 try/catch 블록입니다.It should be corrected rather than handled in a try/catch block.

    다음 예제에서는 않습니다, 예외를 throw 하는 문자열에서 리터럴 중괄호를 포함 하려고 합니다.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)
    

    리터럴 중괄호를 포함 하 여 복합 서식 문자열에서에 대 한 개체 목록에 포함 하 고 결과 문자열에 삽입할 형식 항목을 사용 하는 권장 방법은입니다.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. 예를 들어, 다음과 같이 이전 복합 형식 문자열을 수정할 수 있습니다.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)
    

    형식 문자열을 오타를 포함 하는 경우에 예외를 throw 됩니다.The exception is also thrown if your format string contains a typo. 다음 호출을 String.Format 메서드 닫는 중괄호를 생략 하 고 닫는 괄호를 사용 하 여 여는 중괄호 쌍입니다.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)
    

    오류를 해결 하려면 모든 중괄호와 닫는 중괄호가 해당를 확인 합니다.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)
    
  • 개체 목록에는 복합 형식 지정을 강력한 형식된 매개 변수 배열로 메서드에 제공한 및 FormatException 예외 하나 이상의 형식 항목의 인덱스 개체 목록에서 인수 개수를 초과 했음을 나타내는입니다.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. 대신 컴파일러가 매개 변수 배열이 아니라 단일 인수로 배열 처리 배열 형식 간의 명시적 변환이 존재 하기 때문에 발생 합니다.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. 다음을 호출 하는 예를 들어를 Console.WriteLine(String, Object[]) 메서드가 throw를 FormatException 예외 형식 항목의 가장 높은 인덱스 3 및 형식의 매개 변수 배열이 되어도 Int32 네 개의 요소가.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()
    

    이 예외를 처리 하는 대신 원인을 제거 해야 합니다.Instead of handling this exception, you should eliminate its cause. Visual Basic 또는 C# 모두 정수 배열을 개체 배열로 변환할 수, 때문에 복합 형식 지정 메서드를 호출 하기 전에 사용자가 직접 변환을 수행 해야 합니다.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. 다음 예제에는 하나의 구현을 제공합니다.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 값 0x80131537 HRESULT COR_E_FORMAT를 사용 합니다.FormatException uses the HRESULT COR_E_FORMAT, which has the value 0x80131537.

FormatException 클래스에서 파생 되며 Exception 없는 고유한 멤버를 추가 합니다.The FormatException class derives from Exception and adds no unique members. 인스턴스의 초기 속성 값의 목록을 FormatException, 참조는 FormatException 생성자입니다.For a list of initial property values for an instance of FormatException, see the FormatException constructors.

생성자

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

FormatException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FormatException class.

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

serialize된 데이터를 사용하여 FormatException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FormatException class with serialized data.

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

지정된 오류 메시지를 사용하여 FormatException 클래스의 새 인스턴스를 초기화합니다.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)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 FormatException 클래스의 새 인스턴스를 초기화합니다.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.

속성

Data Data Data Data

예외에 대한 사용자 정의 추가 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

현재 예외를 설명하는 메시지를 가져옵니다.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

호출 스택의 직접 실행 프레임에 대한 문자열 표현을 가져옵니다.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

현재 예외를 throw하는 메서드를 가져옵니다.Gets the method that throws the current exception.

(Inherited from Exception)

메서드

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

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

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

파생 클래스에서 재정의되었을 때, 하나 이상의 후속 예외의 근본 원인이 되는 Exception을 반환합니다.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()

기본 해시 함수로 작동합니다.Serves as the default hash function.

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

파생 클래스에서 재정의될 때, 예외에 관한 정보를 SerializationInfo에 설정합니다.When overridden in a derived class, sets the SerializationInfo with information about the exception.

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

현재 인스턴스의 런타임 형식을 가져옵니다.Gets the runtime type of the current instance.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 예외에 대한 문자열 표현을 만들고 반환합니다.Creates and returns a string representation of the current exception.

(Inherited from Exception)

이벤트

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

적용 대상

추가 정보