Baca dalam bahasa Inggris

Bagikan melalui


ArgumentOutOfRangeException Kelas

Definisi

Pengecualian yang dilemparkan ketika nilai argumen berada di luar rentang nilai yang diizinkan seperti yang didefinisikan oleh metode yang dipanggil.

public class ArgumentOutOfRangeException : ArgumentException
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentOutOfRangeException : ArgumentException
Warisan
ArgumentOutOfRangeException
Warisan
ArgumentOutOfRangeException
Atribut
Penerapan

Contoh

Contoh berikut mendefinisikan kelas untuk berisi informasi tentang tamu yang diundang. Jika tamu lebih muda dari 21, ArgumentOutOfRangeException pengecualian akan dilemparkan.

using System;
using static System.Console;

public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            var guest1 = new Guest("Ben", "Miller", 17);
            WriteLine(guest1.GuestInfo);
        }
        catch (ArgumentOutOfRangeException argumentOutOfRangeException)
        {
            WriteLine($"Error: {argumentOutOfRangeException.Message}");
        }
    }
}

class Guest
{
    private const int minimumRequiredAge = 21;

    private string firstName;
    private string lastName;
    private int age;

    public Guest(string firstName, string lastName, int age)
    {
        if (age < minimumRequiredAge)
            throw new ArgumentOutOfRangeException(nameof(age), $"All guests must be {minimumRequiredAge}-years-old or older.");

        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public string GuestInfo => $"{firstName} {lastName}, {age}";
}

Keterangan

Pengecualian ArgumentOutOfRangeException dilemparkan ketika metode dipanggil dan setidaknya salah satu argumen yang diteruskan ke metode tidak dan berisi nilai yang tidak null valid yang bukan anggota set nilai yang diharapkan untuk argumen. Properti ParamName mengidentifikasi argumen yang tidak valid, dan ActualValue properti, jika ada nilai, mengidentifikasi nilai yang tidak valid.

Biasanya, hasil ArgumentOutOfRangeException dari kesalahan pengembang. Alih-alih menangani pengecualian dalam try/catch blok, Anda harus menghilangkan penyebab pengecualian atau, jika argumen dikembalikan oleh panggilan metode atau input oleh pengguna sebelum diteruskan ke metode yang melemparkan pengecualian, Anda harus memvalidasi argumen sebelum meneruskannya ke metode .

ArgumentOutOfRangeException digunakan secara ekstensif dengan:

Kondisi di mana ArgumentOutOfRangeException pengecualian dilemparkan meliputi yang berikut:

  • Anda mengambil anggota koleksi berdasarkan nomor indeksnya, dan nomor indeks tidak valid.

    Ini adalah penyebab paling umum dari ArgumentOutOfRangeException pengecualian. Biasanya, nomor indeks tidak valid karena salah satu dari empat alasan:

    1. Koleksi tidak memiliki anggota, dan kode Anda mengasumsikan bahwa itu terjadi. Contoh berikut mencoba mengambil elemen pertama dari koleksi yang tidak memiliki elemen:

      using System;
      using System.Collections.Generic;
      
      public class Example4
      {
         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
      

      Untuk mencegah pengecualian, periksa apakah properti koleksi Count lebih besar dari nol sebelum mencoba mengambil anggota apa pun, seperti yang dilakukan fragmen kode berikut.

      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
    2. Dalam beberapa kasus, pengecualian dapat terjadi karena Anda mencoba menambahkan anggota ke koleksi dengan menggunakan indeks yang tidak ada, daripada dengan memanggil metode , seperti Add, yang ada untuk tujuan ini. Contoh berikut mencoba menambahkan elemen ke koleksi dengan menggunakan indeks yang tidak ada daripada memanggil List<T>.Add metode .

      using System;
      using System.Collections.Generic;
      
      public class Example13
      {
         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()
      

      Fragmen kode berikut mengoreksi kesalahan ini:

      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2));
      
    3. Anda mencoba mengambil item yang indeksnya negatif. Ini biasanya terjadi karena Anda telah mencari koleksi untuk indeks elemen tertentu dan secara keliru mengasumsikan bahwa pencarian berhasil. Dalam contoh berikut, panggilan ke List<T>.FindIndex(Predicate<T>) metode gagal menemukan string yang sama dengan "Z" sehingga mengembalikan -1. Namun, ini adalah nilai indeks yang tidak valid.

      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
      

      Untuk mencegah pengecualian, periksa apakah pencarian berhasil dengan memastikan bahwa indeks yang dikembalikan lebih besar dari atau sama dengan nol sebelum mencoba mengambil item dari koleksi, seperti yang dilakukan fragmen kode berikut.

      // 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]);
      
    4. Anda mencoba mengambil elemen yang indeksnya sama dengan nilai properti koleksi Count , seperti yang diilustrasikan contoh berikut.

      using System;
      using System.Collections.Generic;
      
      public class Example8
      {
         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
      

      Karena koleksi di .NET menggunakan pengindeksan berbasis nol, elemen pertama koleksi berada pada indeks 0, dan elemen terakhir berada di indeks Count - 1. Anda dapat menghilangkan kesalahan dengan memastikan bahwa Anda mengakses elemen terakhir pada indeks Count - 1, seperti kode berikut.

      // Display the elements in the list by index.
      for (int ctr = 0; ctr < list.Count; ctr++)
         Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
      
  • Anda mencoba melakukan operasi string dengan memanggil metode manipulasi string, dan indeks awal tidak ada dalam string.

    Kelebihan beban metode seperti String.Compare, , String.CompareOrdinal, String.LastIndexOfString.IndexOfIndexOfAnyString.Insert, String.LastIndexOfAny, Remove, atau String.Substring yang memungkinkan Anda menentukan indeks awal operasi mengharuskan indeks menjadi posisi yang valid dalam string. Indeks yang valid berkisar dari 0 hingga String.Length - 1.

    Ada empat penyebab umum pengecualian ini ArgumentOutOfRangeException :

    1. Anda bekerja dengan string kosong, atau String.Empty. Karena propertinya String.Length mengembalikan 0, setiap upaya untuk memanipulasinya dengan indeks melemparkan ArgumentOutOfRangeException pengecualian. Contoh berikut, mendefinisikan GetFirstCharacter metode yang mengembalikan karakter pertama string. Jika string kosong, karena string akhir yang diteruskan ke metode adalah, metode akan memberikan ArgumentOutOfRangeException pengecualian.

      using System;
      
      public class Example1
      {
          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()
      

      Anda dapat menghilangkan pengecualian dengan menguji apakah string String.Length lebih besar dari nol atau dengan memanggil IsNullOrEmpty metode untuk memastikan bahwa string tidak null atau kosong. Fragmen kode berikut melakukan yang terakhir. Dalam hal ini, jika string adalah null atau kosong, GetFirstCharacter metode mengembalikan U+0000.

      static char GetFirstCharacter(string s)
      {
          if (string.IsNullOrEmpty(s))
              return '\u0000';
          else
              return s[0];
      }
      
    2. Anda memanipulasi string berdasarkan posisi substring dalam string tersebut, dan Anda gagal menentukan apakah substring benar-benar ditemukan.

      Contoh berikut mengekstrak kata kedua dari frasa dua kata. Ini melemparkan ArgumentOutOfRangeException pengecualian jika frasa hanya terdiri dari satu kata, dan karenanya tidak berisi karakter spasi yang disematkan. Ini terjadi karena panggilan ke String.IndexOf(String) metode mengembalikan -1 untuk menunjukkan bahwa pencarian gagal, dan nilai yang tidak valid ini kemudian diteruskan ke String.Substring(Int32) metode .

      using System;
      
      public class Example17
      {
         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 Example17.GetSecondWord(String s)
      //       at Example17.Main()
      

      Untuk menghilangkan pengecualian, validasi nilai yang dikembalikan oleh metode pencarian string sebelum memanggil metode manipulasi string.

      using System;
      
      public class Example18
      {
         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
      
    3. Anda telah mencoba mengekstrak substring yang berada di luar rentang string saat ini.

      Metode yang mengekstrak substring semuanya mengharuskan Anda menentukan posisi awal substring dan, untuk substring yang tidak berlanjut ke akhir string, jumlah karakter dalam substring. Perhatikan bahwa ini bukan indeks karakter terakhir dalam substring.

      Pengecualian ArgumentOutOfRangeException biasanya dilemparkan dalam kasus ini karena Anda salah menghitung jumlah karakter dalam substring. Jika Anda menggunakan metode pencarian seperti String.IndexOf untuk mengidentifikasi posisi awal dan akhir substring:

      • Jika karakter dalam posisi akhir yang dikembalikan oleh String.IndexOf akan disertakan dalam substring, posisi akhir substring diberikan oleh rumus

        endIndex - startIndex + 1
        
      • Jika karakter dalam posisi akhir yang dikembalikan oleh String.IndexOf akan dikecualikan dari substring, posisi akhir substring diberikan oleh rumus

        endIndex - startIndex
        

        Contoh berikut mendefinisikan FindWords metode yang menggunakan String.IndexOfAny(Char[], Int32) metode untuk mengidentifikasi karakter spasi dan tanda baca dalam string dan mengembalikan array yang berisi kata-kata yang ditemukan dalam string.

        using System;
        using System.Collections.Generic;
        
        public class Example19
        {
           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 + 1;
                 }
                 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'
        
  • Anda telah meneruskan angka negatif ke metode dengan argumen yang hanya memerlukan angka positif dan nol, atau Anda telah meneruskan angka negatif atau nol ke metode dengan argumen yang hanya memerlukan angka positif.

    Misalnya, Array.CreateInstance(Type, Int32, Int32, Int32) metode mengharuskan Anda menentukan jumlah elemen di setiap dimensi array dua dimensi; nilai yang valid untuk setiap dimensi dapat berkisar dari 0 hingga Int32.MaxValue. Tetapi karena argumen dimensi dalam contoh berikut memiliki nilai negatif, metode ini memberikan ArgumentOutOfRangeException pengecualian.

    using System;
    
    public class Example01
    {
        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
    

    Untuk memperbaiki kesalahan, pastikan bahwa nilai argumen yang tidak valid tidak negatif. Anda dapat melakukan ini dengan memberikan nilai yang valid, seperti yang dilakukan fragmen kode berikut.

    int dimension1 = 10;
    int dimension2 = 10;
    Array arr = Array.CreateInstance(typeof(string),
                                     dimension1, dimension2);
    

    Anda juga dapat memvalidasi input dan, jika tidak valid, ambil beberapa tindakan. Fragmen kode berikut menampilkan pesan kesalahan alih-alih memanggil metode .

    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);
    }
    
  • Kondisi balapan ada di aplikasi yang multithreaded atau memiliki tugas yang dijalankan secara asinkron dan yang memperbarui array atau koleksi.

    Contoh berikut menggunakan List<T> objek untuk mengisi kumpulan Continent objek. Ini melemparkan ArgumentOutOfRangeException jika contoh mencoba menampilkan tujuh item dalam koleksi sebelum koleksi diisi sepenuhnya.

    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 Example11
    {
       static List<Continent> continents = new List<Continent>();
       static string? s_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(s_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();
          s_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()
    

    Dalam hal ini, dua sumber daya diakses dari beberapa utas:

    • Koleksinya continents . Metodenya List<T>.Add dipanggil dari beberapa utas. Selain itu, utas utama atau utama mengasumsikan koleksi sepenuhnya diisi dengan tujuh elemen ketika iterasi anggotanya.

    • String msg , yang digabungkan dari beberapa utas.

    Untuk memperbaiki kesalahan, pastikan bahwa status bersama diakses dengan cara aman utas, sebagai berikut.

    • jika aplikasi Anda menggunakan objek array atau koleksi, pertimbangkan untuk menggunakan kelas koleksi yang aman untuk utas, seperti jenis di System.Collections.Concurrent namespace layanan atau System.Collections.Immutable rilis out-of-band.

    • Pastikan bahwa status bersama (yaitu, sumber daya yang dapat diakses oleh beberapa utas) diakses dengan cara yang aman untuk utas, sehingga hanya satu utas pada satu waktu yang memiliki akses eksklusif ke sumber daya. Sejumlah besar kelas, seperti CountdownEvent, , InterlockedMonitor, dan Mutex, tersedia untuk menyinkronkan akses ke sumber daya. Untuk informasi selengkapnya, lihat Utas. Selain itu, dukungan bahasa tersedia melalui pernyataan kunci di C# dan konstruksi SyncLock di Visual Basic.

    Contoh berikut membahas ArgumentOutOfRangeException dan masalah lainnya dari contoh sebelumnya. Ini mengganti List<T> objek dengan ConcurrentBag<T> objek untuk memastikan bahwa akses ke koleksi aman untuk utas, menggunakan objek untuk memastikan bahwa utas CountdownEvent aplikasi berlanjut hanya setelah utas lain dijalankan, dan menggunakan kunci untuk memastikan bahwa hanya satu utas yang dapat mengakses msg variabel pada satu waktu.

    using System;
    using System.Collections.Concurrent;
    using System.Threading;
    
    public class ContinentD
    {
       public string? Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }
    }
    
    public class Example12
    {
       static ConcurrentBag<ContinentD> ContinentDs = new ConcurrentBag<ContinentD>();
       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(PopulateContinentDs);
             th.Start(name);
          }
    
          // Display the list.
          gate.Wait();
          Console.WriteLine(msg);
          Console.WriteLine();
    
          var arr = ContinentDs.ToArray();
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var ContinentD = arr[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}",
                               ContinentD.Name, ContinentD.Population,
                               ContinentD.Area);
          }
       }
    
       private static void PopulateContinentDs(Object? obj)
       {
          string? name = obj?.ToString();
          lock(msg) {
             msg += string.Format("Adding '{0}' to the list.\n", name);
          }
          var ContinentD = new ContinentD();
          ContinentD.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(25);
          ContinentDs.Add(ContinentD);
          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
    

ArgumentOutOfRangeException menggunakan COR_E_ARGUMENTOUTOFRANGE HRESULT, yang memiliki nilai 0x80131502.

Untuk daftar nilai properti awal untuk instans ArgumentOutOfRangeException, lihat ArgumentOutOfRangeException konstruktor.

Konstruktor

ArgumentOutOfRangeException()

Menginisialisasi instans baru kelas ArgumentOutOfRangeException.

ArgumentOutOfRangeException(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans ArgumentOutOfRangeException baru kelas dengan data berseri.

ArgumentOutOfRangeException(String)

Menginisialisasi instans ArgumentOutOfRangeException baru kelas dengan nama parameter yang menyebabkan pengecualian ini.

ArgumentOutOfRangeException(String, Exception)

Menginisialisasi instans ArgumentOutOfRangeException baru kelas dengan pesan kesalahan yang ditentukan dan pengecualian yang merupakan penyebab pengecualian ini.

ArgumentOutOfRangeException(String, Object, String)

Menginisialisasi instans ArgumentOutOfRangeException baru kelas dengan nama parameter, nilai argumen, dan pesan kesalahan yang ditentukan.

ArgumentOutOfRangeException(String, String)

Menginisialisasi instans ArgumentOutOfRangeException baru kelas dengan nama parameter yang menyebabkan pengecualian ini dan pesan kesalahan yang ditentukan.

Properti

ActualValue

Mendapatkan nilai argumen yang menyebabkan pengecualian ini.

Data

Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian.

(Diperoleh dari Exception)
HelpLink

Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini.

(Diperoleh dari Exception)
HResult

Mendapatkan atau menetapkan HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu.

(Diperoleh dari Exception)
InnerException

Mendapatkan instans Exception yang menyebabkan pengecualian saat ini.

(Diperoleh dari Exception)
Message

Mendapatkan pesan kesalahan dan representasi string dari nilai argumen yang tidak valid, atau hanya pesan kesalahan jika nilai argumen null.

ParamName

Mendapatkan nama parameter yang menyebabkan pengecualian ini.

(Diperoleh dari ArgumentException)
Source

Get dan set nama aplikasi atau objek yang menyebabkan kesalahan.

(Diperoleh dari Exception)
StackTrace

Mendapatkan representasi string dari bingkai langsung pada tumpukan panggilan.

(Diperoleh dari Exception)
TargetSite

Mendapatkan metode yang melemparkan pengecualian saat ini.

(Diperoleh dari Exception)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetBaseException()

Ketika ditimpa di kelas turunan, mengembalikan Exception yang merupakan akar penyebab dari satu atau beberapa pengecualian berikutnya.

(Diperoleh dari Exception)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

SerializationInfo Mengatur objek dengan nilai argumen yang tidak valid dan informasi pengecualian tambahan.

GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

SerializationInfo Mengatur objek dengan nama parameter dan informasi pengecualian tambahan.

(Diperoleh dari ArgumentException)
GetType()

Mendapatkan jenis runtime instans saat ini.

(Diperoleh dari Exception)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ThrowIfEqual<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value sama dengan other.

ThrowIfGreaterThan<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value lebih besar dari other.

ThrowIfGreaterThanOrEqual<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value lebih besar dari atau sama dengan other.

ThrowIfLessThan<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value kurang dari other.

ThrowIfLessThanOrEqual<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value kurang dari atau sama dengan other.

ThrowIfNegative<T>(T, String)

Melempar jika ArgumentOutOfRangeExceptionvalue negatif.

ThrowIfNegativeOrZero<T>(T, String)

Melempar jika ArgumentOutOfRangeExceptionvalue negatif atau nol.

ThrowIfNotEqual<T>(T, T, String)

ArgumentOutOfRangeException Melempar jika value tidak sama dengan other.

ThrowIfZero<T>(T, String)

Melempar jika ArgumentOutOfRangeExceptionvalue adalah nol.

ToString()

Membuat dan mengembalikan representasi string dari pengecualian saat ini.

(Diperoleh dari Exception)

Acara

SerializeObjectState
Kedaluwarsa.

Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian.

(Diperoleh dari Exception)

Berlaku untuk

Produk Versi
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Lihat juga