パッケージflash.errors
public dynamic class StackOverflowError
継承StackOverflowError Inheritance Error Inheritance Object

ActionScript は、スクリプトで使用できるスタックを使い切った場合に StackOverflowError 例外をスローします。ActionScript はスタックを使用して、スクリプト内で行われた各メソッド呼び出しに関する情報 (たとえば、メソッドが使用するローカル変数) を保管します。使用できるスタックスペースの量は、システムによって異なります。

StackOverflowError 例外は、無限反復が発生したことを示している可能性があります。その場合、関数に終了条件を追加する必要があります。また、再帰アルゴリズムには適切な終了条件があるものの、単にスタックを使い切ってしまったことを示している可能性もあります。この場合、代わりの方法として、アルゴリズムを反復的に表現するようにしてください。

例の表示

関連項目

エラーイベントへの応答とステータス


パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 InheritederrorID : int
特定のエラーメッセージに関連付けられた参照番号です。
Error
 Inheritedmessage : String
Error オブジェクトに関連付けられたメッセージです。
Error
 Inheritedname : String
Error オブジェクトの名前です。
Error
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
  StackOverflowError(message:String = "")
新しい StackOverflowError オブジェクトを作成します。
StackOverflowError
 InheritedgetStackTrace():String
エラーの構築時にエラーの呼び出しスタックをストリングで返します (デバッガバージョンの Flash Player のみ)。
Error
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。
Error
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
コンストラクタの詳細
StackOverflowError()コンストラクタ
public 関数 StackOverflowError(message:String = "")

新しい StackOverflowError オブジェクトを作成します。

パラメータ
message:String (default = "") — エラーオブジェクトに関連付けられたストリングです。

次の例では、サンプル StackOverflowErrorExample クラスを使用して、 スタックのオーバーフローが生じた場合に生成されるエラーを示します。 ここでは次の手順を 実行します。
  1. コンストラクタがメソッド lockMachine() をエラー処理コード セグメント内で呼び出します。そのコードセグメントは StackOverflowError オブジェクトをキャッチするものです。
  2. lockMachine() メソッドはスタックがオーバーフローするまで自身を呼び出し続けます。
  3. StackOverflowError がスローされると、コンストラクタはそれをキャッチし、 trace ステートメントを使用してエラーメッセージを出力します。
package {
    import flash.display.Sprite;
    import flash.errors.StackOverflowError;

    public class StackOverflowErrorExample extends Sprite {        
        public function StackOverflowErrorExample() {
            try {
                lockMachine();
            } 
            catch(e:StackOverflowError) {
                trace(e);    // StackOverflowError: Error #1023: Stack overflow.
            }
        }
        
        private function lockMachine():void {
            lockMachine();
        }
    }
}