OutOfMemoryException OutOfMemoryException OutOfMemoryException OutOfMemoryException Class

定義

プログラムの実行を継続するためのメモリが不足している場合にスローされる例外。The exception that is thrown when there is not enough memory to continue the execution of a program.

public ref class OutOfMemoryException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class OutOfMemoryException : SystemException
type OutOfMemoryException = class
    inherit SystemException
Public Class OutOfMemoryException
Inherits SystemException
継承
OutOfMemoryExceptionOutOfMemoryExceptionOutOfMemoryExceptionOutOfMemoryException
派生
属性

注釈

OutOfMemoryExceptionでは、 COR_E_OUTOFMEMORY値が0x8007000E の HRESULT が使用されます。OutOfMemoryException uses the HRESULT COR_E_OUTOFMEMORY, which has the value 0x8007000E.

OutOfMemoryExceptionインスタンスの初期プロパティ値の一覧については、OutOfMemoryExceptionコンストラクターを参照してください。For a list of initial property values for an instance of OutOfMemoryException, see the OutOfMemoryException constructors.

注意

継承Dataされたプロパティの値はnull常にです。The value of the inherited Data property is always null.

例外OutOfMemoryExceptionには、次の2つの主要な原因があります。An OutOfMemoryException exception has two major causes:

  • プロパティによって定義さStringBuilderれた長さを超えてオブジェクトを展開しようとしています。 StringBuilder.MaxCapacityYou are attempting to expand a StringBuilder object beyond the length defined by its StringBuilder.MaxCapacity property.

  • 共通言語ランタイムは、操作を正常に実行するために十分な連続メモリを割り当てることができません。The common language runtime cannot allocate enough contiguous memory to successfully perform an operation. この例外は、メモリの割り当てを必要とするプロパティの割り当てまたはメソッドの呼び出しによってスローされる場合があります。This exception can be thrown by any property assignment or method call that requires a memory allocation. OutOfMemoryException例外の原因の詳細については、「メモリ不足」によって物理メモリが参照されていないことを確認してください。For more information on the cause of the OutOfMemoryException exception, see "Out of Memory" Does Not Refer to Physical Memory.

    この種類のOutOfMemoryException例外は、致命的なエラーを表します。This type of OutOfMemoryException exception represents a catastrophic failure. 例外を処理する場合は、次の例に示すcatchように、 Environment.FailFastメソッドを呼び出してアプリを終了し、システムイベントログにエントリを追加するブロックを含める必要があります。If you choose to handle the exception, you should include a catch block that calls the Environment.FailFast method to terminate your app and add an entry to the system event log, as the following example does.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          try {
             // Outer block to handle any unexpected exceptions.
             try {
                string s = "This";
                s = s.Insert(2, "is ");
    
                // Throw an OutOfMemoryException exception.
                throw new OutOfMemoryException();
             }
             catch (ArgumentException) {
                Console.WriteLine("ArgumentException in String.Insert");
             }
    
             // Execute program logic.
          }
          catch (OutOfMemoryException e) {
             Console.WriteLine("Terminating application unexpectedly...");
             Environment.FailFast(String.Format("Out of Memory: {0}",
                                                e.Message));
          }
       }
    }
    // The example displays the following output:
    //        Terminating application unexpectedly...
    
    Module Example
       Public Sub Main()
          Try
             ' Outer block to handle any unexpected exceptions.
             Try
                Dim s As String = "This"
                s = s.Insert(2, "is ")
    
                ' Throw an OutOfMemoryException exception.
                Throw New OutOfMemoryException()
             Catch e As ArgumentException
                Console.WriteLine("ArgumentException in String.Insert")
             End Try
             
             ' Execute program logic.
    
          Catch e As OutOfMemoryException
             Console.WriteLine("Terminating application unexpectedly...")
             Environment.FailFast(String.Format("Out of Memory: {0}",
                                                e.Message))
          End Try
       End Sub
    End Module
    ' The example displays the following output:
    '       Terminating application unexpectedly...
    

例外がスローされるいくつかの条件と、それを排除するために実行できるアクションを次に示します。Some of the conditions under which the exception is thrown and the actions you can take to eliminate it include the following:

メソッドを呼び出してStringBuilder.Insertいます。You are calling the StringBuilder.Insert method.

プロパティで指定されたサイズを超えStringBuilderてオブジェクトの長さを増やしようとしています。 StringBuilder.MaxCapacityYou are attempting to increase the length of a StringBuilder object beyond the size specified by its StringBuilder.MaxCapacity property. 次の例は、 OutOfMemoryException StringBuilder.Insert(Int32, String, Int32)メソッドの呼び出しによってスローされる例外を示しています。この例では、オブジェクトLengthのプロパティが最大容量を超える可能性のある文字列を挿入しようとしています。The following example illustrates the OutOfMemoryException exception thrown by a call to the StringBuilder.Insert(Int32, String, Int32) method when the example tries to insert a string that would cause the object's Length property to exceed its maximum capacity.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      StringBuilder sb = new StringBuilder(15, 15);
      sb.Append("Substring #1 ");
      try {
         sb.Insert(0, "Substring #2 ", 1);
      }
      catch (OutOfMemoryException e) {
         Console.WriteLine("Out of Memory: {0}", e.Message);
      }
   }
}
// The example displays the following output:
//    Out of Memory: Insufficient memory to continue the execution of the program.
Imports System.Text

Module Example
   Public Sub Main()
      Dim sb As New StringBuilder(15, 15)
      sb.Append("Substring #1 ")
      Try
         sb.Insert(0, "Substring #2 ", 1)
      Catch e As OutOfMemoryException
         Console.WriteLine("Out of Memory: {0}", e.Message)
      End Try
   End Sub
End Module
' The example displays the following output:
'   Out of Memory: Insufficient memory to continue the execution of the program.

エラーを解決するには、次のいずれかを実行します。You can do either of the following to address the error:

アプリは、32ビットプロセスとして実行されます。Your app runs as a 32-bit process.

32ビットプロセスでは、32ビットシステムでは最大 2 GB の仮想ユーザーモードメモリ、64ビットシステムでは 4 GB の仮想ユーザーモードメモリを割り当てることができます。32-bit processes can allocate a maximum of 2GB of virtual user-mode memory on 32-bit systems, and 4GB of virtual user-mode memory on 64-bit systems. これにより、大量の割り当てが必要な場合に、共通言語ランタイムが十分な連続メモリを割り当てることが困難になる可能性があります。This can make it more difficult for the common language runtime to allocate sufficient contiguous memory when a large allocation is needed. これに対し、64ビットプロセスでは最大 8 TB の仮想メモリを割り当てることができます。In contrast, 64-bit processes can allocate up to 8TB of virtual memory. この例外に対処するには、64ビットプラットフォームを対象とするようにアプリを再コンパイルします。To address this exception, recompile your app to target a 64-bit platform. Visual Studio で特定のプラットフォームを対象にする方法の詳細については、「」を参照してください。プロジェクトを構成して対象プラットフォームを設定するFor information on targeting specific platforms in Visual Studio, see How to: Configure Projects to Target Platforms.

アプリがアンマネージリソースをリークしていますYour app is leaking unmanaged resources

ガベージコレクターは、マネージ型に割り当てられたメモリを解放できますが、オペレーティングシステムハンドル (ファイルへのハンドル、メモリマップトファイル、パイプ、レジストリキー、待機ハンドルなど) に割り当てられたメモリを管理しません。Windows API 呼び出しによって直接割り当てられたメモリブロック、またはなどmallocのメモリ割り当て関数の呼び出しによって割り当てられたメモリブロック。Although the garbage collector is able to free memory allocated to managed types, it does not manage memory allocated to unmanaged resources such as operating system handles (including handles to files, memory-mapped files, pipes, registry keys, and wait handles) and memory blocks allocated directly by Windows API calls or by calls to memory allocation functions such as malloc. アンマネージリソースを使用する型IDisposableは、インターフェイスを実装します。Types that consume unmanaged resources implement the IDisposable interface.

アンマネージリソースを使用する型を使用している場合は、そのメソッドのIDisposable.Dispose使用が完了したら、そのメソッドを呼び出す必要があります。If you are consuming a type that uses unmanaged resources, you should be sure to call its IDisposable.Dispose method when you have finished using it. (一部の型ではClose 、関数Disposeとメソッドの同一メソッドも実装されています)。詳細については、「 IDisposable を実装するオブジェクトの使用」を参照してください。(Some types also implement a Close method that is identical in function to a Dispose method.) For more information, see the Using Objects That Implement IDisposable topic.

アンマネージリソースを使用する型を作成した場合は、Dispose パターンを実装していることを確認し、必要に応じてファイナライザーを指定してください。If you have created a type that uses unmanaged resources, make sure that you have implemented the Dispose pattern and, if necessary, supplied a finalizer. 詳細については、「 Dispose メソッドの実装」およびObject.Finalize「」を参照してください。For more information, see Implementing a Dispose method and Object.Finalize.

64ビットプロセスで大きな配列を作成しようとしていますYou are attempting to create a large array in a 64-bit process

既定では .NET Framework の共通言語ランタイムでは、サイズが 2 GB を超える単一オブジェクトは許可されません。By default, the common language runtime in .NET Framework does not allow single objects whose size exceeds 2GB. この既定値をオーバーライドするには、 <gcAllowVeryLargeObjects >構成ファイルの設定を使用して、合計サイズが 2 GB を超える配列を有効にします。To override this default, you can use the <gcAllowVeryLargeObjects> configuration file setting to enable arrays whose total size exceeds 2 GB. .NET Core では、2 GB を超える配列のサポートは既定で有効になっています。On .NET Core, support for arrays of greater than 2 GB is enabled by default.

メモリ内で非常に大きなデータセット (配列、コレクション、データベースデータセットなど) を使用しています。You are working with very large sets of data (such as arrays, collections, or database data sets) in memory.

メモリに格納されているデータ構造またはデータセットが非常に大きくなり、共通言語ランタイムがそれに対して十分なOutOfMemoryException連続メモリを割り当てることができない場合、例外が発生します。When data structures or data sets that reside in memory become so large that the common language runtime is unable to allocate enough contiguous memory for them, an OutOfMemoryException exception results.

OutOfMemoryException例外を回避するには、メモリに格納されるデータの量が少なくなるようにアプリケーションを変更するか、メモリの割り当てを小さくする必要があるセグメントにデータを分割します。To prevent the OutOfMemoryException exceptions, you must modify your application so that less data is resident in memory, or the data is divided into segments that require smaller memory allocations. 次に例を示します。For example:

  • データベースからすべてのデータを取得し、それをアプリでフィルター処理してサーバーへのトリップを最小限に抑える場合は、アプリに必要なデータのサブセットのみを返すようにクエリを変更する必要があります。If you are retrieving all of the data from a database and then filtering it in your app to minimize trips to the server, you should modify your queries to return only the subset of data that your app needs. 大きなテーブルを扱う場合、1つのテーブル内のすべてのデータを取得して操作するよりも、ほとんどの場合、複数のクエリの方が効率的です。When working with large tables, multiple queries are almost always more efficient than retrieving all of the data in a single table and then manipulating it.

  • ユーザーが動的に作成するクエリを実行する場合は、クエリによって返されるレコードの数が制限されていることを確認する必要があります。If you are executing queries that users create dynamically, you should ensure that the number of records returned by the query is limited.

  • サイズが大きい配列やその他のコレクションオブジェクトを使用していOutOfMemoryExceptionて、そのサイズが例外になる場合は、同時に処理するのではなく、サブセット内のデータを処理するようにアプリケーションを変更する必要があります。If you are using large arrays or other collection objects whose size results in an OutOfMemoryException exception, you should modify your application to work the data in subsets rather than to work with it all at once.

次の例では、2億の浮動小数点値で構成される配列を取得し、その平均を計算します。The following example gets a array that consists of 200 million floating-point values and then calculates their mean. この例の出力は、平均OutOfMemoryException値を計算する前に配列全体がメモリに格納されるため、がスローされることを示しています。The output from the example shows that, because the example stores the entire array in memory before it calculates the mean, an OutOfMemoryException is thrown.

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      Double[] values = GetData();
      // Compute mean.
      Console.WriteLine("Sample mean: {0}, N = {1}",
                        GetMean(values), values.Length);
   }

   private static Double[] GetData()
   {
      Random rnd = new Random();
      List<Double> values = new List<Double>();
      for (int ctr = 1; ctr <= 200000000; ctr++) {
         values.Add(rnd.NextDouble());
         if (ctr % 10000000 == 0)
            Console.WriteLine("Retrieved {0:N0} items of data.",
                              ctr);
      }
      return values.ToArray();
   }

   private static Double GetMean(Double[] values)
   {
      Double sum = 0;
      foreach (var value in values)
         sum += value;

      return sum / values.Length;
   }
}
// The example displays output like the following:
//    Retrieved 10,000,000 items of data.
//    Retrieved 20,000,000 items of data.
//    Retrieved 30,000,000 items of data.
//    Retrieved 40,000,000 items of data.
//    Retrieved 50,000,000 items of data.
//    Retrieved 60,000,000 items of data.
//    Retrieved 70,000,000 items of data.
//    Retrieved 80,000,000 items of data.
//    Retrieved 90,000,000 items of data.
//    Retrieved 100,000,000 items of data.
//    Retrieved 110,000,000 items of data.
//    Retrieved 120,000,000 items of data.
//    Retrieved 130,000,000 items of data.
//
//    Unhandled Exception: OutOfMemoryException.
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim values() As Double = GetData()
      ' Compute mean.
      Console.WriteLine("Sample mean: {0}, N = {1}",
                        GetMean(values), values.Length)
   End Sub
   
   Private Function GetData() As Double()
      Dim rnd As New Random()
      Dim values As New List(Of Double)()
      For ctr As Integer = 1 To 200000000
         values.Add(rnd.NextDouble)
         If ctr Mod 10000000 = 0 Then
            Console.WriteLine("Retrieved {0:N0} items of data.",
                              ctr)
         End If
      Next
      Return values.ToArray()
   End Function
   
   Private Function GetMean(values() As Double) As Double
      Dim sum As Double = 0
      For Each value In values
         sum += value
      Next
      Return sum / values.Length
   End Function
End Module
' The example displays output like the following:
'    Retrieved 10,000,000 items of data.
'    Retrieved 20,000,000 items of data.
'    Retrieved 30,000,000 items of data.
'    Retrieved 40,000,000 items of data.
'    Retrieved 50,000,000 items of data.
'    Retrieved 60,000,000 items of data.
'    Retrieved 70,000,000 items of data.
'    Retrieved 80,000,000 items of data.
'    Retrieved 90,000,000 items of data.
'    Retrieved 100,000,000 items of data.
'    Retrieved 110,000,000 items of data.
'    Retrieved 120,000,000 items of data.
'    Retrieved 130,000,000 items of data.
'
'    Unhandled Exception: OutOfMemoryException.

次の例ではOutOfMemoryException 、データセット全体をメモリに格納せずに受信データを処理し、さらに処理を許可する必要がある場合にデータをファイルにシリアル化することで、例外を除去します (これらの行は例でコメントアウトされています)。この場合、サイズが 1 GB を超えるファイルが生成され、計算された平均とケースの数が呼び出し側のルーチンに返されます。The following example eliminates the OutOfMemoryException exception by processing the incoming data without storing the entire data set in memory, serializing the data to a file if necessary to permit further processing (these lines are commented out in the example, since in this case they produce a file whose size is greater than 1GB), and returning the calculated mean and the number of cases to the calling routine.

using System;
using System.IO;

public class Example
{
   public static void Main()
   {
      Tuple<Double, long> result = GetResult();
      Console.WriteLine("Sample mean: {0}, N = {1:N0}",
                        result.Item1, result.Item2);
   }

   private static Tuple<Double, long> GetResult()
   {
      int chunkSize = 50000000;
      int nToGet = 200000000;
      Random rnd = new Random();
      // FileStream fs = new FileStream(@".\data.bin", FileMode.Create);
      // BinaryWriter bin = new BinaryWriter(fs);
      // bin.Write((int)0);
      int n = 0;
      Double sum = 0;
      for (int outer = 0;
           outer <= ((int) Math.Ceiling(nToGet * 1.0 / chunkSize) - 1);
           outer++) {
         for (int inner = 0;
              inner <= Math.Min(nToGet - n - 1, chunkSize - 1);
              inner++) {
            Double value = rnd.NextDouble();
            sum += value;
            n++;
            // bin.Write(value);
         }
      }
      // bin.Seek(0, SeekOrigin.Begin);
      // bin.Write(n);
      // bin.Close();
      return new Tuple<Double, long>(sum/n, n);
   }
}
// The example displays output like the following:
//    Sample mean: 0.500022771458399, N = 200,000,000
Imports System.IO

Module Example
   Public Sub Main()
      Dim result As Tuple(Of Double, Long) = GetResult()
      Console.WriteLine("Sample mean: {0}, N = {1:N0}",
                        result.Item1, result.Item2)
   End Sub

   Private Function GetResult As Tuple(Of Double, Long)
      Dim chunkSize As Integer = 50000000
      Dim nToGet As Integer = 200000000
      Dim rnd As New Random()
'       Dim fs As New FileStream(".\data.bin", FileMode.Create)
'       Dim bin As New BinaryWriter(fs)
'       bin.Write(CInt(0))
      Dim n As Integer
      Dim sum As Double
      For outer As Integer = 0 To CInt(Math.Ceiling(nToGet/chunkSize) - 1)
         For inner = 0 To Math.Min(nToGet - n - 1, chunkSize - 1)
            Dim value As Double = rnd.NextDouble()
            sum += value
            n += 1
'            bin.Write(value)
         Next
      Next
'       bin.Seek(0, SeekOrigin.Begin)
'       bin.Write(n)
'       bin.Close()
      Return New Tuple(Of Double, Long)(sum/n, n)
   End Function
End Module
' The example displays output like the following:
'   Sample mean: 0.500022771458399, N = 200,000,000

大きな文字列を繰り返し連結しています。You are repeatedly concatenating large strings.

文字列は不変であるため、各文字列連結操作で新しい文字列が作成されます。Because strings are immutable, each string concatenation operation creates a new string. 小さな文字列への影響、または少数の連結操作に対する影響は、ごくわずかです。The impact for small strings, or for a small number of concatenation operations, is negligible. ただし、大きな文字列または非常に多くの連結操作の場合、文字列の連結によって、大量のメモリ割り当てやメモリの断片化、パフォーマンスのOutOfMemoryException低下、および場合によっては例外が発生する可能性があります。But for large strings or a very large number of concatenation operations, string concatenation can lead to a large number of memory allocations and memory fragmentation, poor performance, and possibly OutOfMemoryException exceptions.

大きな文字列を連結する場合、または多数の連結演算を実行する場合StringBuilderは、 Stringクラスの代わりにクラスを使用する必要があります。When concatenating large strings or performing a large number of concatenation operations, you should use the StringBuilder class instead of the String class. 文字列の操作が完了したら、 StringBuilder StringBuilder.ToStringメソッドを呼び出して、インスタンスを文字列に変換します。When you have finished manipulating the string, convert the StringBuilder instance to a string by calling the StringBuilder.ToString method.

メモリ内に多数のオブジェクトをピン留めします。You pin a large number of objects in memory.

長時間にわたって多数のオブジェクトをメモリに固定すると、ガベージコレクターが連続したメモリブロックを割り当てることが困難になる可能性があります。Pinning a large number of objects in memory for long periods can make it difficult for the garbage collector to allocate contiguous blocks of memory. たとえば、 fixedのステートメントを使用するGCHandle.Alloc(Object, GCHandleType) C#か、のGCHandleType.Pinnedハンドル型を使用してメソッドを呼び出すなどして、メモリ内に多数のオブジェクトをピン留めした場合は、 OutOfMemoryException次のようにして例外に対処できます。If you've pinned a large number of objects in memory, for example by using the fixed statement in C# or by calling the GCHandle.Alloc(Object, GCHandleType) method with a handle type of GCHandleType.Pinned, you can do the following to address the OutOfMemoryException exception.

  • 各オブジェクトを実際に固定する必要があるかどうかを評価します。Evaluate whether each object really needs to be pinned,

  • 各オブジェクトの固定ができるだけ早く解除されていることを確認します。Ensure that each object is unpinned as soon as possible.

  • メモリをピン留めするためのGCHandle.Alloc(Object, GCHandleType)メソッドの各呼び出しに、対応するGCHandle.Freeメソッドへの呼び出しがあることを確認して、そのメモリを固定解除します。Make sure that each call to the GCHandle.Alloc(Object, GCHandleType) method to pin memory has a corresponding call to the GCHandle.Free method to unpin that memory.

次の Microsoft 中間 (MSIL) 命令は例外OutOfMemoryExceptionをスローします。The following Microsoft intermediate (MSIL) instructions throw an OutOfMemoryException exception:

コンストラクター

OutOfMemoryException() OutOfMemoryException() OutOfMemoryException() OutOfMemoryException()

OutOfMemoryException クラスの新しいインスタンスを初期化します。Initializes a new instance of the OutOfMemoryException class.

OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext)

シリアル化したデータを使用して、OutOfMemoryException クラスの新しいインスタンスを初期化します。Initializes a new instance of the OutOfMemoryException class with serialized data.

OutOfMemoryException(String) OutOfMemoryException(String) OutOfMemoryException(String) OutOfMemoryException(String)

指定したエラー メッセージを使用して、OutOfMemoryException クラスの新しいインスタンスを初期化します。Initializes a new instance of the OutOfMemoryException class with a specified error message.

OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、OutOfMemoryException クラスの新しいインスタンスを初期化します。Initializes a new instance of the OutOfMemoryException 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

現在の例外がスローされたメソッドを取得します。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()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である 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

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

適用対象

こちらもご覧ください