この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
このトピックはまだ評価されていません - このトピックを評価する

StackOverflowException クラス

入れ子になったメソッド呼び出しが多くなりすぎ、実行スタックがオーバーフローした場合にスローされる例外。 このクラスは継承できません。

System.Object
  System.Exception
    System.SystemException
      System.StackOverflowException

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class StackOverflowException : SystemException

StackOverflowException 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドXNA Framework によるサポートStackOverflowException() StackOverflowException クラスの新しいインスタンスの Message プロパティに、"要求された操作によってスタック オーバーフローが発生しました。" などのエラーを説明するシステムから提供されるメッセージを設定して、その新しいインスタンスを初期化します。このメッセージは、システムの現在のカルチャを考慮して指定します。
パブリック メソッドXNA Framework によるサポートStackOverflowException(String)指定したエラー メッセージを使用して、StackOverflowException クラスの新しいインスタンスを初期化します。
パブリック メソッドXNA Framework によるサポートStackOverflowException(String, Exception)指定したエラー メッセージと、この例外の原因である内部例外への参照を使用して、StackOverflowException クラスの新しいインスタンスを初期化します。
このページのトップへ
  名前説明
パブリック プロパティData例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクションを取得します。 (Exception から継承されます。)
パブリック プロパティHelpLink例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 (Exception から継承されます。)
パブリック プロパティHResult特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 (Exception から継承されます。)
パブリック プロパティXNA Framework によるサポートInnerException現在の例外の原因となる Exception インスタンスを取得します。 (Exception から継承されます。)
パブリック プロパティXNA Framework によるサポートMessage現在の例外を説明するメッセージを取得します。 (Exception から継承されます。)
パブリック プロパティSourceエラーの原因となったアプリケーションまたはオブジェクトの名前を取得または設定します。 (Exception から継承されます。)
パブリック プロパティXNA Framework によるサポートStackTrace呼び出し履歴の直前のフレームの文字列形式を取得します。 (Exception から継承されます。)
パブリック プロパティTargetSite現在の例外がスローされたメソッドを取得します。 (Exception から継承されます。)
このページのトップへ
  名前説明
パブリック メソッドXNA Framework によるサポートEquals(Object)指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッドXNA Framework によるサポートGetBaseException派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。 (Exception から継承されます。)
パブリック メソッドXNA Framework によるサポートGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetObjectData派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。 (Exception から継承されます。)
パブリック メソッドXNA Framework によるサポートGetType現在のインスタンスのランタイム型を取得します。 (Exception から継承されます。)

XNA Framework3.0では、このメンバーは Object..::..GetType() から継承されていますGetType().
パブリック メソッドXNA Framework によるサポートToString現在の例外の文字列形式を作成して返します。 (Exception から継承されます。)
このページのトップへ

StackOverflowException は、再帰の回数がかなり多い場合や無限に続く場合などに生じる、実行スタックのオーバーフローによるエラーに対してスローされます。 MSIL (Microsoft Intermediate Language) の Localloc 命令は、StackOverflowException をスローします。

StackOverflowException は、値 0x800703E9 を保持する HRESULT COR_E_STACKOVERFLOW を使用します。 StackOverflowException オブジェクトの初期プロパティ値の一覧については、StackOverflowException コンストラクターのトピックを参照してください。

メモメモ

継承された Data プロパティの値は常に null です。

バージョンの考慮事項

.NET Framework の以前のバージョンでは、アプリケーションは StackOverflowException オブジェクトをキャッチできました (たとえば、無限の再帰から回復するため)。 ただし、この方法は現在は推奨されていません。スタック オーバーフロー例外を確実にキャッチしてプログラムの実行を続行するには、多数の追加コードが必要だからです。

.NET Framework Version 2.0 以降は、StackOverflowException オブジェクトを、try-catch ブロックによってキャッチすることはできません。対応するプロセスは既定で終了されます。 したがって、スタック オーバーフローを検出して防ぐためのコードを記述することをお勧めします。 たとえば、アプリケーションが再帰の使用に依存する場合は、カウンターまたは状態の条件を使用して再帰的ループを終了します。 共通言語ランタイム (CLR) をホストするアプリケーションには、スタック オーバーフロー例外が発生したアプリケーション ドメインを CLR によってアンロードし、対応するプロセスを続行するように指定できます。 詳細については、「ICLRPolicyManager インターフェイス」および「ホストの概要」を参照してください。

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition プラットフォーム メモ: スローされた StackOverflowException を try-catch ブロックでキャッチすることはできません。 したがって、例外によってプロセスは即座に終了させられます。

.NET Framework

サポート対象 : 4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
この情報は役に立ちましたか。
(残り 1500 文字)

コミュニティの追加

追加
© 2013 Microsoft. All rights reserved.