ArgumentOutOfRangeException ArgumentOutOfRangeException ArgumentOutOfRangeException ArgumentOutOfRangeException Class

정의

인수 값이 호출된 메서드에서 정의한 값의 허용 범위를 벗어날 때 throw되는 예외입니다.The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.

public ref class ArgumentOutOfRangeException : ArgumentException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
type ArgumentOutOfRangeException = class
    inherit ArgumentException
    interface ISerializable
Public Class ArgumentOutOfRangeException
Inherits ArgumentException
상속
특성
구현

예제

다음 예제는 초대 된 게스트에 대 한 정보를 포함 하는 클래스를 정의 합니다.The following example defines a class to contain information about an invited guest. 게스트는 21 미만의 경우는 ArgumentOutOfRangeException 예외가 throw 됩니다.If the guest is younger than 21, an ArgumentOutOfRangeException exception is thrown.

using System;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            Guest guest1 = new Guest("Ben", "Miller", 17);
            Console.WriteLine(guest1.GuestInfo());
        }
        catch (ArgumentOutOfRangeException outOfRange)
        {

            Console.WriteLine("Error: {0}", outOfRange.Message);
        }
    }
}

class Guest
{
    private string FirstName;
    private string LastName;
    private int Age;

    public Guest(string fName, string lName, int age)
    {
        FirstName = fName;
        LastName = lName;
        if (age < 21)
            throw new ArgumentOutOfRangeException("age","All guests must be 21-years-old or older.");
        else
            Age = age;
    }

    public string GuestInfo()
    {
        string gInfo = FirstName + " " + LastName + ", " + Age.ToString();
        return(gInfo);
    }
}
Module Module1
   Public Sub Main()
       Try
           Dim guest1 As Guest = New Guest("Ben", "Miller", 17)
           Console.WriteLine(guest1.GuestInfo)
       Catch outOfRange As ArgumentOutOfRangeException
           Console.WriteLine("Error: {0}", outOfRange.Message)
       End Try
   End Sub
End Module

Class Guest
    Private FirstName As String
    Private LastName As String
    Private Age As Integer

    Public Sub New(ByVal fName As String, ByVal lName As String, ByVal age As Integer)
        MyBase.New()
        FirstName = fName
        LastName = lName
        If (age < 21) Then
            Throw New ArgumentOutOfRangeException("age", "All guests must be 21-years-old or older.")
        Else
            age = age
        End If
    End Sub

    Public Function GuestInfo() As String
        Dim gInfo As String = (FirstName + (" " _
                    + (Me.LastName + (", " + Me.Age.ToString))))
        Return gInfo
    End Function
End Class

설명

ArgumentOutOfRangeException 메서드를 호출 하는 메서드에 전달 된 인수 중 하나 이상 없는 경우 예외가 throw 됩니다 null 인수에 대 한 예상 값 집합의 구성원이 아닌 잘못 된 값을 포함 합니다.An ArgumentOutOfRangeException exception is thrown when a method is invoked and at least one of the arguments passed to the method is not null and contains an invalid value that is not a member of the set of values expected for the argument. 합니다 ParamName 잘못 된 인수를 식별 하는 속성 및 ActualValue 속성 값이 있는 경우 잘못 된 값을 식별 하 합니다.The ParamName property identifies the invalid argument, and the ActualValue property, if a value is present, identifies the invalid value.

일반적으로 ArgumentOutOfRangeException 개발자 오류를 발생 합니다.Typically, an ArgumentOutOfRangeException results from developer error. 예외를 처리 하는 대신 한 try / catch 블록, 예외의 원인을 제거 해야 하거나 예외를 throw 하는 인수 메서드 호출에 의해 반환 되었거나 메서드에 전달 되기 전에 사용자가 입력 하는 경우 을 메서드에 전달 하기 전에 인수를 확인 해야 합니다.Instead of handling the exception in a try/catch block, you should eliminate the cause of the exception or, if the argument is returned by a method call or input by the user before being passed to the method that throws the exception, you should validate arguments before passing them to the method.

ArgumentOutOfRangeException 광범위 하 게 사용 합니다.ArgumentOutOfRangeException is used extensively by:

되는 경우는 ArgumentOutOfRangeException 예외가 다음과 같습니다.The conditions in which an ArgumentOutOfRangeException exception is thrown include the following:

  • 해당 인덱스 번호로 컬렉션의 멤버를 검색 하 고 인덱스 번호가 올바르지 않습니다.You are retrieving the member of a collection by its index number, and the index number is invalid.

    가장 일반적인 원인은 ArgumentOutOfRangeException 예외입니다.This is the most common cause of an ArgumentOutOfRangeException exception. 일반적으로 인덱스 번호를 올바르지 않은 경우 네 가지 이유 중 하나:Typically, the index number is invalid for one of four reasons:

    1. 컬렉션에 멤버가 없는 있고 코드를 수행 하는 것으로 가정 합니다.The collection has no members, and your code assumes that it does. 다음 예제에서는 컬렉션 요소가 없는 첫 번째 요소를 검색 하려고 합니다.The following example attempts to retrieve the first element of a collection that has no elements:

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var list = new List<String>();
            Console.WriteLine("Number of items: {0}", list.Count);
            try {
               Console.WriteLine("The first item: '{0}'", list[0]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Number of items: 0
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String)
            Console.WriteLine("Number of items: {0}", list.Count)
            Try
               Console.WriteLine("The first item: '{0}'", list(0))
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      ' The example displays the following output:
      '   Number of items: 0
      '   Index was out of range. Must be non-negative and less than the size of the collection.
      '   Parameter name: index
      

      예외를 방지 하려면 확인 여부를 컬렉션의 Count 속성은 다음 코드 조각 처럼 모든 멤버를 검색 하는 동안 0 보다 커야 합니다.To prevent the exception, check whether the collection's Count property is greater than zero before attempting to retrieve any members, as the following code fragment does.

      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
      If list.Count > 0 Then
         Console.WriteLine("The first item: '{0}'", list(0))
      End If
      
    2. 일부 경우에는 예외와 같은 메서드를 호출 하는 대신, 존재 하지 않는 인덱스를 사용 하 여 컬렉션에 구성원을 추가 하려고 하기 때문에 발생할 수 있습니다 Add,이 목적을 위해 존재 하는 합니다.In some cases, the exception may occur because you are attempting to add a member to a collection by using an index that does not exist, rather than by calling the method, such as Add, that exists for this purpose. 다음 예제에서는 호출 하는 것이 아니라 존재 하지 않는 인덱스를 사용 하 여 컬렉션에 요소를 추가 하려고 합니다 List<T>.Add 메서드.The following example attempts to add an element to a collection by using a non-existent index rather than calling the List<T>.Add method.

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var numbers = new List<int>();
            numbers.AddRange( new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20 } );
            
            var squares = new List<int>();
            for (int ctr = 0; ctr < numbers.Count; ctr++)
               squares[ctr] = (int) Math.Pow(numbers[ctr], 2); 
         }
      }
      // The example displays the following output:
      //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      //    Parameter name: index
      //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      //       at Example.Main()
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim numbers As New List(Of Integer)
            numbers.AddRange( { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20 } )
            
            Dim squares As New List(Of Integer)
            For ctr As Integer = 0 To numbers.Count - 1
               squares(ctr) = CInt(numbers(ctr) ^ 2) 
            Next
         End Sub
      End Module
      ' The example displays the following output:
      '    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      '    Parameter name: index
      '       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      '       at Example.Main()
      

      다음 코드 조각에서는이 오류를 해결합니다.The following code fragment corrects this error:

      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2)); 
      
      Dim squares As New List(Of Integer)
      For ctr As Integer = 0 To numbers.Count - 1
         squares.Add(CInt(numbers(ctr) ^ 2)) 
      Next
      
    3. 음수 인덱스 항목을 검색 하려고 합니다.You're attempting to retrieve an item whose index is negative. 이 문제는 일반적으로 특정 요소의 인덱스에 대 한 컬렉션을 검색 한를 성공적으로 검색 되었는지 잘못 가정 하기 때문에 발생 합니다.This usually occurs because you've searched a collection for the index of a particular element and have erroneously assumed that the search is successful. 다음 예제에서는 호출에에서는 List<T>.FindIndex(Predicate<T>) -1을 반환 하는 "Z" 등 동일한 문자열을 찾지 못하면 메서드.In the following example, the call to the List<T>.FindIndex(Predicate<T>) method fails to find a string equal to "Z" and so returns -1. 그러나이 값은 잘못 된 인덱스 값입니다.However, this is an invalid index value.

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var list = new List<String>(); 
            list.AddRange( new String[] { "A", "B", "C" } );
            // Get the index of the element whose value is "Z".
            int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
            try {
               Console.WriteLine("Index {0} contains '{1}'", index, list[index]); 
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      
      internal class StringSearcher
      {
         String value;
         
         public StringSearcher(String value)
         {
            this.value = value;
         }
         
         public bool FindEquals(String s) 
         {
            return s.Equals(value, StringComparison.InvariantCulture); 
         }
      }
      // The example displays the following output:
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String) 
            list.AddRange( { "A", "B", "C" } )
            ' Get the index of the element whose value is "Z".
            Dim index As Integer = list.FindIndex(AddressOf (New StringSearcher("Z")).FindEquals)
            Try
               Console.WriteLine("Index {0} contains '{1}'", index, list(index)) 
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      
      Friend Class StringSearcher
         Dim value As String
         
         Public Sub New(value As String)
            Me.value = value
         End Sub
         
         Public Function FindEquals(s As String) As Boolean
            Return s.Equals(value, StringComparison.InvariantCulture) 
         End Function
      End Class
      ' The example displays the following output:
      '   Index was out of range. Must be non-negative and less than the size of the collection.
      '   Parameter name: index
      

      예외를 방지 하는 반환 된 인덱스 보다 큽니다. 또는 컬렉션에서 항목을 검색 하기 전에 0과 같지 다음 코드 조각을 확인 하 여 검색 성공 인지를 확인 합니다.To prevent the exception, check that the search is successful by making sure that the returned index is greater than or equal to zero before attempting to retrieve the item from the collection, as the following code fragment does.

      // Get the index of the element whose value is "Z".
      int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
      if (index >= 0)
         Console.WriteLine("'Z' is found at index {0}", list[index]); 
      
      ' Get the index of the element whose value is "Z".
      Dim index As Integer = list.FindIndex(AddressOf (New StringSearcher("Z")).FindEquals)
      If index >= 0 Then
         Console.WriteLine("Index {0} contains '{1}'", index, list(index)) 
      End If
      
    4. 인덱스가 컬렉션의 값과 같은 요소를 검색 하려는 Count 속성을 다음 예제와 같이 보여 줍니다.You're attempting to retrieve an element whose index is equal to the value of the collection's Count property, as the following example illustrates.

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var list = new List<String>(); 
            list.AddRange( new String[] { "A", "B", "C" } );
            try {
               // Display the elements in the list by index.
               for (int ctr = 0; ctr <= list.Count; ctr++) 
                  Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
            } 
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Index 0: A
      //   Index 1: B
      //   Index 2: C
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String) 
            list.AddRange( { "A", "B", "C" } )
            Try
               ' Display the elements in the list by index.
               For ctr As Integer = 0 To list.Count
                  Console.WriteLine("Index {0}: {1}", ctr, list(ctr)) 
               Next   
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      ' The example displays the following output:
      '   Index 0: A
      '   Index 1: B
      '   Index 2: C
      '   Index was out of range. Must be non-negative and less than the size of the collection.
      '   Parameter name: index
      

      인덱스가 0부터 시작을 사용 하 여.NET의 컬렉션, 컬렉션의 첫 번째 요소는 0, 인덱스 및 인덱스에서 마지막 요소는 때문에 Count -1입니다.Because collections in .NET use zero-based indexing, the first element of the collection is at index 0, and the last element is at index Count - 1. 인덱스에서 마지막 요소를 액세스 하 여 오류를 제거할 수 있습니다 Count -1, 다음 코드 처럼 합니다.You can eliminate the error by ensuring that you access the last element at index Count - 1, as the following code does.

      // Display the elements in the list by index.
      for (int ctr = 0; ctr < list.Count; ctr++) 
         Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
      
      ' Display the elements in the list by index.
      For ctr As Integer = 0 To list.Count - 1 
         Console.WriteLine("Index {0}: {1}", ctr, list(ctr)) 
      Next   
      
  • 문자열 조작 메서드를 호출 하 여 문자열 작업을 수행 하려고 하 고 문자열의 시작 인덱스 존재 하지 않습니다.You are attempting to perform a string operation by calling a string manipulation method, and the starting index does not exist in the string.

    같은 같은 메서드의 오버 로드 String.Compare, String.CompareOrdinal, String.IndexOf, IndexOfAny, String.InsertString.LastIndexOf, String.LastIndexOfAny, Remove, 또는 String.Substring 의 시작 인덱스를 지정할 수 있도록 합니다 작업 하려면 문자열 내의 올바른 위치를 인덱스에 있어야 합니다.Overloads of methods such as such as String.Compare, String.CompareOrdinal, String.IndexOf, IndexOfAny, String.Insert, String.LastIndexOf, String.LastIndexOfAny, Remove, or String.Substring that allow you to specify the starting index of the operation require that the index be a valid position within the string. 0에서 유효한 인덱스 범위 String.Length -1입니다.Valid indexes range from 0 to String.Length - 1.

    이 네 가지 일반적인 원인은 ArgumentOutOfRangeException 예외:There are four common causes of this ArgumentOutOfRangeException exception:

    1. 빈 문자열을 사용 하 여 작업할 또는 String.Empty합니다.You are working with an empty string, or String.Empty. 때문에 해당 String.Length 0, 인덱스 throw 하 여 조작 하려고를 반환 하는 속성을 ArgumentOutOfRangeException 예외입니다.Because its String.Length property returns 0, any attempt to manipulate it by index throws an ArgumentOutOfRangeException exception. 다음 예제에서는 정의 GetFirstCharacter 문자열의 첫 번째 문자를 반환 하는 메서드입니다.The following example, defines a GetFirstCharacter method that returns the first character of a string. 메서드는 최종 문자열에 전달 된 문자열이 비어 있는 경우, 메서드가 throw는 ArgumentOutOfRangeException 예외입니다.If the string is empty, as the final string passed to the method is, the method throws an ArgumentOutOfRangeException exception.

      using System;
      
      public class Example
      {
         public static void Main()
         {
             String[] words = { "the", "today", "tomorrow", " ", "" };
             foreach (var word in words)
                Console.WriteLine("First character of '{0}': '{1}'", 
                                  word, GetFirstCharacter(word));
         }
         
         private static char GetFirstCharacter(String s)
         {
            return s[0];
         }
      }
      // The example displays the following output:
      //    First character of //the//: //t//
      //    First character of //today//: //t//
      //    First character of //tomorrow//: //t//
      //    First character of // //: // //
      //    
      //    Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
      //       at Example.Main()
      
      Module Example
         Public Sub Main()
             Dim words() As String = { "the", "today", "tomorrow", " ", "" }
             For Each word In words
                Console.WriteLine("First character of '{0}': '{1}'", 
                                  word, GetFirstCharacter(word))
             Next                     
         End Sub
         
         Private Function GetFirstCharacter(s As String) As Char
            Return s(0)
         End Function
      End Module
      ' The example displays the following output:
      '    First character of 'the': 't'
      '    First character of 'today': 't'
      '    First character of 'tomorrow': 't'
      '    First character of ' ': ' '
      '    
      '    Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
      '       at Example.Main()
      

      테스트 하 여 예외를 제거할 수 있습니다 있는지 여부를 문자열의 String.Length 를 호출 하거나 0 보다 크면 합니다 IsNullOrEmpty 문자열이 아닌지 확인 하는 방법 null 이거나 비어 합니다.You can eliminate the exception by testing whether the string's String.Length is greater than zero or by calling the IsNullOrEmpty method to ensure that the string is not null or empty. 다음 코드는 후자를 수행합니다.The following code fragment does the latter. 여기서는 문자열이 null 이거나 비어 있는 경우는 GetFirstCharacter u+0000을 반환 합니다.In this case, if the string is null or empty, the GetFirstCharacter method returns U+0000.

      static char GetFirstCharacter(String s)
      {
         if (String.IsNullOrEmpty(s)) 
            return '\u0000';
         else   
            return s[0];
      }
      
      Function GetFirstCharacter(s As String) As Char
         If String.IsNullOrEmpty(s) Then 
            Return ChrW(0)
         Else   
            Return s(0)
         End If   
      End Function
      
    2. 해당 문자열이 있는 부분 문자열의 위치를 기준으로 하는 문자열을 조작 하는 및 부분 문자열을 실제로 찾을 수 있는지 여부를 확인 하지 못했습니다.You're manipulating a string based on the position of a substring within that string, and you've failed to determine whether the substring was actually found.

      다음 예제에서는 두 단어 구의 두 번째 단어를 추출합니다.The following example extracts the second word of a two-word phrase. Throw는 ArgumentOutOfRangeException 예외는 구 이루어져 있습니다만 한 단어 및 따라서 공백이 문자를 포함 하지 않습니다.It throws an ArgumentOutOfRangeException exception if the phrase consists of only one word, and therefore does not contain an embedded space character. 이 때문에 발생에 대 한 호출을 String.IndexOf(String) 검색이 실패 하 고 잘못 된 값이 전달 됩니다 나타낼 때-1을 반환 하는 메서드를 String.Substring(Int32) 메서드.This occurs because the call to the String.IndexOf(String) method returns -1 to indicate that the search failed, and this invalid value is then passed to the String.Substring(Int32) method.

      using System;
      
      public class Example
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen", 
                                 "runOnPhrase" };
            foreach (var phrase in phrases)
               Console.WriteLine("Second word is {0}", GetSecondWord(phrase));
         }
        
         static String GetSecondWord(String s)
         {
            int pos = s.IndexOf(" ");
            return s.Substring(pos).Trim();
         }
      }
      // The example displays the following output:
      //    Second word is blue
      //    Second word is citizen
      //    
      //    Unhandled Exception: System.ArgumentOutOfRangeException: StartIndex cannot be less than zero.
      //    Parameter name: startIndex
      //       at System.String.Substring(Int32 startIndex, Int32 length)
      //       at Example.GetSecondWord(String s)
      //       at Example.Main()
      
      Module Example
         Public Sub Main()
            Dim phrases() As String = { "ocean blue", "concerned citizen", 
                                        "runOnPhrase" }
            For Each phrase In phrases
               Console.WriteLine("Second word is {0}", GetSecondWord(phrase))
            Next                            
        End Sub
        
        Function GetSecondWord(s As String) As String
           Dim pos As Integer = s.IndexOf(" ")
           Return s.Substring(pos).Trim()
        End Function
      End Module
      ' The example displays the following output:
      '       Second word is blue
      '       Second word is citizen
      '       
      '       Unhandled Exception: System.ArgumentOutOfRangeException: StartIndex cannot be less than zero.
      '       Parameter name: startIndex
      '          at System.String.Substring(Int32 startIndex, Int32 length)
      '          at Example.GetSecondWord(String s)
      '          at Example.Main()
      

      예외를 제거 하는 문자열 조작 메서드를 호출 하기 전에 문자열 검색 메서드에 의해 반환 되는 값을 확인 합니다.To eliminate the exception, validate the value returned by the string search method before calling the string manipulation method.

      using System;
      
      public class Example
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen", 
                                 "runOnPhrase" };
            foreach (var phrase in phrases) {
               String word = GetSecondWord(phrase);
               if (! String.IsNullOrEmpty(word))
                  Console.WriteLine("Second word is {0}", word);
            }   
         }
        
         static String GetSecondWord(String s)
         {
            int pos = s.IndexOf(" ");
            if (pos >= 0)
               return s.Substring(pos).Trim();
            else
               return String.Empty;   
         }
      }
      // The example displays the following output:
      //       Second word is blue
      //       Second word is citizen
      
      Module Example
         Public Sub Main()
            Dim phrases() As String = { "ocean blue", "concerned citizen", 
                                        "runOnPhrase" }
            For Each phrase In phrases
               Dim word As String = GetSecondWord(phrase)
               If Not String.IsNullOrEmpty(word) Then _
                  Console.WriteLine("Second word is {0}", word)
            Next                            
         End Sub
        
         Function GetSecondWord(s As String) As String
            Dim pos As Integer = s.IndexOf(" ")
            If pos >= 0
                Return s.Substring(pos).Trim()
            Else
               Return String.Empty
            End If
        End Function
      End Module
      ' The example displays the following output:
      '       Second word is blue
      '       Second word is citizen
      
    3. 현재 문자열의 범위 밖에 있는 부분 문자열을 추출 하려고 했습니다.You've attempted to extract a substring that is outside the range of the current string.

      부분 및 끝 부분 문자열의 문자 수가 문자열의 계속 하지 마십시오는 부분 문자열이 시작 위치를 지정 하는 필요한 모든 부분 문자열을 추출 하는 메서드.The methods that extract substrings all require that you specify the starting position of the substring and, for substrings that do not continue to the end of the string, the number of characters in the substring. 되지 않는다는 참고 합니다 인덱스 부분 문자열의 마지막 문자입니다.Note that this is not the index of the last character in the substring.

      ArgumentOutOfRangeException 일반적으로 경우 없으므로 예외가 올바르게 계산 되지 부분 문자열의 문자 수입니다.An ArgumentOutOfRangeException exception is typically thrown in this case because you've incorrectly calculated the number of characters in the substring. 같은 검색 메서드를 사용 하는 경우 String.IndexOf 시작 및 끝 부분 문자열의 위치를 식별 하려면:If you are using a search method like String.IndexOf to identify the starting and ending positions of a substring:

      • 끝 위치에 있는 문자를 반환한 경우 String.IndexOf 는 부분 문자열에 포함 시킬 부분 문자열의 끝 위치를 지정 하 여 수식If the character in the ending position returned by String.IndexOf is to be included in the substring, the ending position of the substring is given by the formula

        endIndex - startIndex + 1  
        
      • 끝 위치에 있는 문자를 반환한 경우 String.IndexOf 는 부분 문자열에서 제외 부분 문자열의 끝 위치를 지정 하 여 수식If the character in the ending position returned by String.IndexOf is to be excluded from the substring, the ending position of the substring is given by the formula

        endIndex - startIndex   
        

        다음 예제에서는 정의 FindWords 메서드를 사용 하는 String.IndexOfAny(Char[], Int32) 공백 문자 및 문장 부호를 식별 하는 방법에 문자열로 표시 하 고 문자열에서 찾은 단어를 포함 하는 배열을 반환 합니다.The following example defines a FindWords method that uses the String.IndexOfAny(Char[], Int32) method to identify space characters and punctuation marks in a string and returns an array that contains the words found in the string.

        using System;
        using System.Collections.Generic;
        
        public class Example
        {
           public static void Main()
           {
              String sentence = "This is a simple, short sentence.";
              Console.WriteLine("Words in '{0}':", sentence);
              foreach (var word in FindWords(sentence))
                 Console.WriteLine("   '{0}'", word);
           }
           
           static String[] FindWords(String s)
           {
              int start = 0, end = 0;
              Char[] delimiters = { ' ', '.', ',', ';', ':', '(', ')' };
              var words = new List<String>();
        
              while (end >= 0) {
                 end = s.IndexOfAny(delimiters, start);
                 if (end >= 0) {
                    if (end - start > 0)
                       words.Add(s.Substring(start, end - start)); 
        
                    start = end++;
                 }
                 else {
                    if (start < s.Length - 1)
                       words.Add(s.Substring(start));
                 }
              }    
              return words.ToArray();                         
           }
        }
        // The example displays the following output:
        //       Words in 'This is a simple, short sentence.':
        //          'This'
        //          'is'
        //          'a'
        //          'simple'
        //          'short'
        //          'sentence'
        
        Imports System.Collections.Generic
        
        Module Example
           Public Sub Main()
              Dim sentence As String = "This is a simple, short sentence."
              Console.WriteLine("Words in '{0}':", sentence)
              For Each word In FindWords(sentence)
                 Console.WriteLine("   '{0}'", word)
              Next
           End Sub
           
           Function FindWords(s As String) As String()
              Dim start, ending As Integer
              Dim delimiters() As Char = { " "c, "."c, ","c, ";"c, ":"c,
                                           "("c, ")"c }
              Dim words As New List(Of String)()
        
              Do While ending >= 0
                 ending = s.IndexOfAny(delimiters, start)
                 If ending >= 0
                    If ending - start > 0 Then
                       words.Add(s.Substring(start, ending - start)) 
                    End If
                    start = ending + 1
                 Else
                    If start < s.Length - 1 Then
                       words.Add(s.Substring(start))
                    End If      
                 End If
              Loop    
              Return words.ToArray()                         
           End Function
        End Module
        ' The example displays the following output:
        '       Words in 'This is a simple, short sentence.':
        '          'This'
        '          'is'
        '          'a'
        '          'simple'
        '          'short'
        '          'sentence'
        
  • 음수 양수 및 0에 필요한 인수와 함께 메서드에 전달한 또는 음수 또는 0만 양수 필요한 인수와 함께 메서드에 전달 했습니다.You have passed a negative number to a method with an argument that requires only positive numbers and zero, or you have passed either a negative number or zero to a method with an argument that requires only positive numbers.

    예를 들어 합니다 Array.CreateInstance(Type, Int32, Int32, Int32) 메서드는 2 차원 배열의 각 차원에서 요소의 수를 지정 하는 필요 하며 각 차원에 대 한 유효한 값 범위는 0에서 Int32.MaxValue합니다.For example, the Array.CreateInstance(Type, Int32, Int32, Int32) method requires that you specify the number of elements in each dimension of a two-dimensional array; valid values for each dimension can range from 0 to Int32.MaxValue. 다음 예제에서는 차원 인수에 음수 값에는 메서드가 throw 하지만 ArgumentOutOfRangeException 예외입니다.But because the dimension argument in the following example has a negative value, the method throws an ArgumentOutOfRangeException exception.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          int dimension1 = 10;
          int dimension2 = -1;
          try {
             Array arr = Array.CreateInstance(typeof(String), 
                                              dimension1, dimension2);
          }
          catch (ArgumentOutOfRangeException e) {
             if (e.ActualValue != null)
                Console.WriteLine("{0} is an invalid value for {1}: ", e.ActualValue, e.ParamName);
             Console.WriteLine(e.Message);
          }
       }
    }
    // The example displays the following output:
    //     Non-negative number required.
    //     Parameter name: length2
    
    Module Example
       Public Sub Main()
          Dim dimension1 As Integer = 10
          Dim dimension2 As Integer = -1
          Try
             Dim arr AS Array = Array.CreateInstance(GetType(String), 
                                                     dimension1, dimension2)
          Catch e As ArgumentOutOfRangeException
             If e.ActualValue IsNot Nothing Then
                Console.WriteLine("{0} is an invalid value for {1}: ", 
                                  e.ActualValue, e.ParamName)
             End If                     
             Console.WriteLine(e.Message)
          End Try
       End Sub
    End Module
    ' The example displays the following output:
    '     Non-negative number required.
    '     Parameter name: length2
    

    오류를 해결 하려면 잘못 된 인수의 값은 음수가 아닌 인지를 확인 합니다.To correct the error, ensure that the value of the invalid argument is non-negative. 다음 코드 조각 처럼 유효한 값을 제공 하 여이 수행할 수 있습니다.You can do this by providing a valid value, as the following code fragment does.

    int dimension1 = 10;
    int dimension2 = 10;
    Array arr = Array.CreateInstance(typeof(String), 
                                     dimension1, dimension2);   
    
    Dim dimension1 As Integer = 10
    Dim dimension2 As Integer = 10
    Dim arr As Array = Array.CreateInstance(GetType(String), 
                                            dimension1, dimension2)   
    

    또한 입력의 유효성을 검사 하 수, 유효한 경우 일부 작업을 수행 합니다.You can also validate the input and, if it is invalid, take some action. 다음 코드 조각에는 메서드를 호출 하는 대신 오류 메시지를 표시 합니다.The following code fragment displays an error message instead of calling the method.

    if (dimension1 < 0 || dimension2 < 0) {
       Console.WriteLine("Unable to create the array.");
       Console.WriteLine("Specify non-negative values for the two dimensions.");
    }   
    else {
       arr = Array.CreateInstance(typeof(String), 
                                  dimension1, dimension2);   
    }
    
    If dimension1 < 0 OrElse dimension2 < 0 Then
       Console.WriteLine("Unable to create the array.")
       Console.WriteLine("Specify non-negative values for the two dimensions.")
    Else
       arr = Array.CreateInstance(GetType(String), 
                                  dimension1, dimension2)   
    End If
    
  • 경합 상태는 다중 스레드 또는 비동기적으로 실행 하는 배열 또는 컬렉션을 업데이트 하는 작업에는 앱에 있습니다.A race condition exists in an app that is multithreaded or has tasks that execute asynchronously and that updates an array or collection.

    다음 예제에서는 한 List<T> 개체의 컬렉션을 채우는 데 Continent 개체입니다.The following example uses a List<T> object to populate a collection of Continent objects. Throw는 ArgumentOutOfRangeException 예제 컬렉션을 완전히 채웠으므로 전에 컬렉션에 7 개 항목을 표시 하려고 합니다.It throws an ArgumentOutOfRangeException if the example attempts to display the seven items in the collection before the collection is fully populated.

    using System;
    using System.Collections.Generic;
    using System.Threading;
    
    public class Continent
    {
       public String Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }   
    }
    
    public class Example
    {
       static List<Continent> continents = new List<Continent>();
       static String msg; 
       
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia", 
                             "Australia", "Europe", "North America",
                             "South America" };
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinents);
             th.Start(name);
          }              
          Console.WriteLine(msg);
          Console.WriteLine();
    
          // Display the list.
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var continent = continents[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area);
          }
       }
       
       private static void PopulateContinents(Object obj)
       {
          String name = obj.ToString();
          msg += String.Format("Adding '{0}' to the list.\n", name);
          var continent = new Continent();
          continent.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(50);
          continents.Add(continent);
       }
    }
    // The example displays output like the following:
    //    Adding //Africa// to the list.
    //    Adding //Antarctica// to the list.
    //    Adding //Asia// to the list.
    //    Adding //Australia// to the list.
    //    Adding //Europe// to the list.
    //    Adding //North America// to the list.
    //    Adding //South America// to the list.
    //    
    //    
    //    
    //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    //    Parameter name: index
    //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
    //       at Example.Main()
    
    Imports System.Collections.Generic
    Imports System.Threading
    
    Public Class Continent
       Public Property Name As String
       Public Property Population As Integer
       Public Property Area As Decimal  
    End Class
    
    Module Example
       Dim continents As New List(Of Continent)
       Dim msg As String 
          
       Public Sub Main()
          Dim names() As String = { "Africa", "Antarctica", "Asia", 
                                         "Australia", "Europe", "North America",
                                         "South America" }
          ' Populate the list.
          For Each name In names
             Dim th As New Thread(AddressOf PopulateContinents)
             th.Start(name)
          Next              
          Console.WriteLine(msg)
          Console.WriteLine()
    
          ' Display the list.
          For ctr As Integer = 0 To names.Length - 1
             Dim continent = continents(ctr)
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area)
          Next
       End Sub
       
       Private Sub PopulateContinents(obj As Object)
          Dim name As String = obj.ToString()
          msg += String.Format("Adding '{0}' to the list.{1}", name, vbCrLf)
          Dim continent As New Continent()
          continent.Name = name
          ' Sleep to simulate retrieving remaining data.
          Thread.Sleep(50)
          continents.Add(continent)
       End Sub
    End Module
    ' The example displays output like the following:
    '    Adding 'Africa' to the list.
    '    Adding 'Antarctica' to the list.
    '    Adding 'Asia' to the list.
    '    Adding 'Australia' to the list.
    '    Adding 'Europe' to the list.
    '    Adding 'North America' to the list.
    '    Adding 'South America' to the list.
    '    
    '    
    '    
    '    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    '    Parameter name: index
    '       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
    '       at Example.Main()
    

    이 경우 두 리소스에 액세스 하는 데 여러 스레드에서:In this case, two resources are accessed from multiple threads:

    • continents 컬렉션입니다.The continents collection. 해당 List<T>.Add 여러 스레드에서 호출 됩니다.Its List<T>.Add method is called from multiple threads. 또한 주 또는 주 스레드가 해당 멤버를 반복 하면 7 개 요소를 사용 하 여 완벽 하 게 컬렉션을 채웁니다 가정 합니다.In addition, the main or primary thread assumes the collection is fully populated with seven elements when it iterates its members.

    • msg 여러 스레드를 통해 연결 하는 문자열입니다.The msg string, which is concatenated from multiple threads.

    오류를 해결 하려면 공유 상태 스레드로부터 안전한 방식으로 다음과 같이 액세스할가 있는지를 확인 합니다.To correct the error, ensure that shared state is accessed in a thread-safe way, as follows.

    • 앱이 배열 또는 컬렉션 개체를 사용 하는 경우의 형식 같은 스레드로부터 안전한 컬렉션 클래스를 사용 하 여 고려해 야 합니다 System.Collections.Concurrent 네임 스페이스 또는 System.Collections.Immutable 대역의 릴리스 합니다.if your app uses an array or collection object, consider using a thread-safe collection class, such as the types in the System.Collections.Concurrent namespace or the System.Collections.Immutable out-of-band release.

    • 한 번에 하나의 스레드만 전용 리소스에 액세스할 수 있도록 공유 상태 (즉, 여러 스레드에서 액세스할 수 있는 리소스)에 스레드로부터 안전한 방식으로 액세스를 확인 합니다.Ensure that shared state (that is, resources that can be accessed by multiple threads) is accessed in a thread-safe way, so that only one thread at a time has exclusive access to the resources. 많은 클래스와 같은 CountdownEvent, Interlocked, Monitor, 및 Mutex, 리소스에 대 한 액세스를 동기화에 사용할 수 있습니다.A large number of classes, such as CountdownEvent, Interlocked, Monitor, and Mutex, are available to synchronize access to resources. 자세한 내용은 스레딩합니다.For more information, see Threading. 또한 언어 지원은 합니다 잠금을 C#의 문은 및 SyncLock Visual Basic에서 생성 합니다.In addition, language support is available through the lock statement in C# and the SyncLock construct in Visual Basic.

    다음 예제에서는 주소는 ArgumentOutOfRangeException 및 이전 예제에서 다른 문제입니다.The following example addresses the ArgumentOutOfRangeException and the other issues from the previous example. 대체는 List<T> 개체를 ConcurrentBag<T> 컬렉션에 대 한 액세스는 스레드로부터 안전 사용 되었는지 확인 하려면 개체를 CountdownEvent 애플리케이션 스레드가 다른 스레드를 실행 하 고 확인 하는 잠금을 사용 후에 계속 되도록 하기 위해서 개체 하나의 스레드만 액세스할 수 있는지를 msg 번 변수입니다.It replaces the List<T> object with a ConcurrentBag<T> object to ensure that access to the collection is thread-safe, uses a CountdownEvent object to ensure that the application thread continues only after other threads have executed, and uses a lock to ensure that only one thread can access the msg variable at a time.

    using System;
    using System.Collections.Concurrent;
    using System.Threading;
    
    public class Continent
    {
       public String Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }   
    }
    
    public class Example
    {
       static ConcurrentBag<Continent> continents = new ConcurrentBag<Continent>();
       static CountdownEvent gate;
       static String msg = String.Empty;
    
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia", 
                             "Australia", "Europe", "North America",
                             "South America" };
          gate = new CountdownEvent(names.Length);
          
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinents);
             th.Start(name);
          }              
    
          // Display the list.
          gate.Wait();
          Console.WriteLine(msg);
          Console.WriteLine();
    
          var arr = continents.ToArray();
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var continent = arr[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area);
          }
       }
       
       private static void PopulateContinents(Object obj)
       {
          String name = obj.ToString();
          lock(msg) { 
             msg += String.Format("Adding '{0}' to the list.\n", name);
          }
          var continent = new Continent();
          continent.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(25);
          continents.Add(continent);
          gate.Signal();
       }
    }
    // The example displays output like the following:
    //       Adding 'Africa' to the list.
    //       Adding 'Antarctica' to the list.
    //       Adding 'Asia' to the list.
    //       Adding 'Australia' to the list.
    //       Adding 'Europe' to the list.
    //       Adding 'North America' to the list.
    //       Adding 'South America' to the list.
    //       
    //       
    //       Africa: Area: 0, Population 0
    //       Antarctica: Area: 0, Population 0
    //       Asia: Area: 0, Population 0
    //       Australia: Area: 0, Population 0
    //       Europe: Area: 0, Population 0
    //       North America: Area: 0, Population 0
    //       South America: Area: 0, Population 0
    
    Imports System.Collections.Concurrent
    Imports System.Threading
    
    Public Class Continent
       Public Property Name As String
       Public Property Population As Integer
       Public Property Area As Decimal  
    End Class
    
    Module Example
       Dim continents As New ConcurrentBag(Of Continent)
       Dim gate As CountdownEvent
       Dim msg As String = String.Empty
          
       Public Sub Main()
          Dim names() As String = { "Africa", "Antarctica", "Asia", 
                                    "Australia", "Europe", "North America",
                                    "South America" }
          gate = new CountdownEvent(names.Length)
          
          ' Populate the list.
          For Each name In names
             Dim th As New Thread(AddressOf PopulateContinents)
             th.Start(name)
          Next              
    
          ' Display the list.
          gate.Wait()
          Console.WriteLine(msg)
          Console.WriteLine()
    
          For ctr As Integer = 0 To names.Length - 1
             Dim continent = continents(ctr)
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area)
          Next
       End Sub
       
       Private Sub PopulateContinents(obj As Object)
          Dim name As String = obj.ToString()
          SyncLock msg 
             msg += String.Format("Adding '{0}' to the list.{1}", name, vbCrLf)
          End SyncLock
          Dim continent As New Continent()
          continent.Name = name
          ' Sleep to simulate retrieving remaining data.
          Thread.Sleep(25)
          continents.Add(continent)
          gate.Signal()
       End Sub
    End Module
    ' The example displays output like the following:
    '    Adding 'Africa' to the list.
    '    Adding 'Antarctica' to the list.
    '    Adding 'Asia' to the list.
    '    Adding 'Australia' to the list.
    '    Adding 'Europe' to the list.
    '    Adding 'North America' to the list.
    '    Adding 'South America' to the list.
    '    
    '    
    '    Africa: Area: 0, Population 0
    '    Antarctica: Area: 0, Population 0
    '    Asia: Area: 0, Population 0
    '    Australia: Area: 0, Population 0
    '    Europe: Area: 0, Population 0
    '    North America: Area: 0, Population 0
    '    South America: Area: 0, Population 0
    

ArgumentOutOfRangeException 값 0x80131502 HRESULT COR_E_ARGUMENTOUTOFRANGE를 사용 합니다.ArgumentOutOfRangeException uses the HRESULT COR_E_ARGUMENTOUTOFRANGE, which has the value 0x80131502.

인스턴스의 초기 속성 값의 목록을 ArgumentOutOfRangeException, 참조는 ArgumentOutOfRangeException 생성자입니다.For a list of initial property values for an instance of ArgumentOutOfRangeException, see the ArgumentOutOfRangeException constructors.

생성자

ArgumentOutOfRangeException() ArgumentOutOfRangeException() ArgumentOutOfRangeException() ArgumentOutOfRangeException()

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

ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext)

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

ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String)

이 예외를 throw한 매개 변수의 이름을 사용하여 ArgumentOutOfRangeException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ArgumentOutOfRangeException class with the name of the parameter that causes this exception.

ArgumentOutOfRangeException(String, Exception) ArgumentOutOfRangeException(String, Exception) ArgumentOutOfRangeException(String, Exception) ArgumentOutOfRangeException(String, Exception)

지정된 오류 메시지와 이 예외를 발생시킨 예외를 사용하여 ArgumentOutOfRangeException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ArgumentOutOfRangeException class with a specified error message and the exception that is the cause of this exception.

ArgumentOutOfRangeException(String, Object, String) ArgumentOutOfRangeException(String, Object, String) ArgumentOutOfRangeException(String, Object, String) ArgumentOutOfRangeException(String, Object, String)

매개 변수 이름, 인수 값 및 지정된 오류 메시지를 사용하여 ArgumentOutOfRangeException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ArgumentOutOfRangeException class with the parameter name, the value of the argument, and a specified error message.

ArgumentOutOfRangeException(String, String) ArgumentOutOfRangeException(String, String) ArgumentOutOfRangeException(String, String) ArgumentOutOfRangeException(String, String)

이 예외를 발생시킨 매개 변수의 이름과 지정된 오류 메시지를 사용하여 ArgumentOutOfRangeException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ArgumentOutOfRangeException class with the name of the parameter that causes this exception and a specified error message.

속성

ActualValue ActualValue ActualValue ActualValue

이 예외를 발생시킨 인수 값을 가져옵니다.Gets the argument value that causes 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

오류 메시지 및 잘못된 인수 값의 문자열 표현을 가져오거나, 인수 값이 Null인 경우 오류 메시지만 가져옵니다.Gets the error message and the string representation of the invalid argument value, or only the error message if the argument value is null.

ParamName ParamName ParamName ParamName

이 예외를 발생시킨 매개 변수의 이름을 가져옵니다.Gets the name of the parameter that causes this exception.

(Inherited from ArgumentException)
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 개체를 설정합니다.Sets the SerializationInfo object with the invalid argument value and additional exception information.

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)

적용 대상

추가 정보