flash.errorsScriptTimeoutError ScriptTimeoutError 例外は、スクリプトのタイムアウト間隔が経過した場合にスローされます。Error ScriptTimeoutError 例外は、スクリプトのタイムアウト間隔が経過した場合にスローされます。スクリプトのタイムアウト間隔は 15 秒です。mx:Application タグに追加できる XML 属性が 2 つあります。1 つは scriptTimeLimit(スクリプトがタイムアウトになるまでの秒数)で、もう 1 つは scriptRecursionLimit(許可される再帰呼び出しの深度)です。

2 つの ScriptTimeoutError 例外がスローされます。最初の例外は、明確にキャッチして終了できます。例外ハンドラーがない場合は、不明な例外によって実行が終了します。2 番目の例外は、スローされてもユーザーコードではキャッチされず、不明な例外のハンドラーが実行されます。この例外をキャッチできないのは、プレーヤーが無期限にハングしないようにするためです。

次の例では、サンプル ScriptTimeoutErrorExample クラスを使用して、スクリプトのタイムアウトが生じた場合に生成されるエラーを示します。これを行うには、以下の手順を実行します。
  1. Boolean 型の keepLooking プロパティが宣言されます。
  2. コンストラクターが lockMachine() メソッドをエラー処理コードセグメント内で呼び出します。このコードセグメントは ScriptTimeoutError オブジェクトをキャッチするものです。
  3. lockMachine() メソッドには無限 while ループが含まれています。
  4. しばらくすると、ScriptTimeoutError がスローされます。コンストラクターはそれをキャッチし、trace ステートメントを使用してエラーメッセージを出力し、keepLooking のブール値を false にリセットします。これにより、while ループ(lockMachine() 内)が終了します。
package { import flash.display.Sprite; import flash.errors.ScriptTimeoutError; public class ScriptTimeoutErrorExample extends Sprite { private var keepLooping:Boolean = true; public function ScriptTimeoutErrorExample() { try { lockMachine(); } catch(e:ScriptTimeoutError) { trace(e); // ScriptTimeoutError: Error #1502: A script has executed for longer than 15 seconds keepLooping = false; } } private function lockMachine():void { while(keepLooping){ } } } }
ScriptTimeoutError 新しい ScriptTimeoutError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい ScriptTimeoutError オブジェクトを作成します。
SQLError SQLError インスタンスは、失敗した操作に関する詳細な情報を提供します。Error SQLError インスタンスは、失敗した操作に関する詳細な情報を提供します。

非同期実行モードでは、SQL データベース操作でエラーが発生すると、SQLConnection インスタンスまたは SQLStatement インスタンスによって SQLErrorEvent オブジェクトが送出されます。SQLError インスタンスの形式でのエラー情報には、SQLErrorEvent オブジェクトの error プロパティからアクセスできます。

同期実行モードでは、SQL データベース操作でエラーが発生すると、SQLConnection インスタンスまたは SQLStatement インスタンスによって SQLError 例外がスローされます。この例外を処理するには、try..catch ブロック内にエラースローコードを記述します。

このクラスは、エラーの詳細(発生したエラーの特定のタイプを指定)、エラーの詳細を示すテキストメッセージ、およびエラーの原因となった操作を含むプロパティを示します。

flash.events.SQLErrorEventflash.data.SQLConnectionflash.data.SQLStatementSQLError スロー可能、または SQLErrorEvent インスタンスの error プロパティで使用可能な SQLError インスタンスを作成します。operationStringこのエラーの原因となった特定の操作を示します。この値は、SQLErrorOperation クラスで定義されている定数の 1 つです。 detailsString現在のエラーの詳細です。 messageString発生したエラーの説明です。 idint0特定のエラーメッセージに関連付けられた参照番号です。 detailIDint-1詳細なエラーメッセージに関連付けられた参照番号です。 detailArgsArraynullロケール固有の詳細なエラーメッセージを構築するために使用できる代入値の順序付き配列です。 スロー可能、または SQLErrorEvent インスタンスの error プロパティで使用可能な SQLError インスタンスを作成します。 flash.errors.SQLErrorOperationtoString デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。エラーメッセージです。 String デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。 detailArguments ロケール固有の詳細なエラーメッセージを作成するために使用できる String 値の配列です。Array ロケール固有の詳細なエラーメッセージを作成するために使用できる String 値の配列です。

このプロパティには、details プロパティのエラーメッセージに代入される、エラーに関連する特定のデータベースオブジェクトまたはオブジェクト(テーブル名、列名など)を示す単一または複数の値が格納されます。 例えば、アプリケーションで次の details プロパティのエラーメッセージとともにエラーが発生した場合を考えます。

there is already another table or index with this name: 'my_table'

この場合、SQLError インスタンスの detailArguments プロパティには、値 "my_table"を持つ単一エレメントが含まれます。

アプリケーションで、detailID プロパティを使用することで特定の details エラーメッセージを識別できます。アプリケーションで、エンドユーザーに対し、エンドユーザーのロケールの言語の代替テキストを表示できます。detailArguments 配列の引数値を、エラーメッセージストリング内の適切な位置に代入できます。これは、特定のロケールのエンドユーザーに、このエラーに対応する details プロパティのエラーメッセージを直接表示するアプリケーションで役立ちます。

detailID の値と、それに対応する英語のエラー詳細メッセージおよび引数のリストについては、「SQL エラー詳細メッセージ、ID、および引数」を参照してください。

detailID 特定の詳細なメッセージに関連付けられた参照番号です。int 特定の詳細なメッセージに関連付けられた参照番号です。この値は、details プロパティのエラーメッセージのロケール固有の変換をサポートするために使用されます。

このプロパティは、details メッセージの一意の識別子を提供します(固有の errorID を持つ各種のエラーに対して、固有の detailID 値を持つ複数のエラーがあります)。この識別子と共に detailArguments 配列で単一または複数の値を使用することで、アプリケーションでロケール固有の詳細なエラーメッセージを提供できます。これは、特定のロケールのエンドユーザーに、このエラーに対応する details プロパティのエラーメッセージを直接表示するアプリケーションで役立ちます。

detailID の値と、それに対応する英語のエラー詳細メッセージおよび引数のリストについては、「SQL エラー詳細メッセージ、ID、および引数」を参照してください。

details 現在のエラーの詳細です。String 現在のエラーの詳細です。発生したエラーに関する追加の固有情報を示します。 operation エラーの発生時に試行されていた操作を示す値です。String エラーの発生時に試行されていた操作を示す値です。この値は、SQLErrorOperation クラスで定義されている定数の 1 つです。 flash.errors.SQLErrorOperation
SQLErrorOperation このクラスには、SQLError.operation プロパティの有効な値を表す定数が含まれます。Object このクラスには、SQLError.operation プロパティの有効な値を表す定数が含まれます。これらの値は、エラー発生の原因となった試行された操作を示します。

それぞれの値は、SQLConnection クラスまたは SQLStatement クラスの操作の 1 つを表します。

flash.errors.SQLError.operationflash.data.SQLConnectionflash.data.SQLStatementANALYZE SQLConnection.analyze() メソッドが呼び出されたことを示します。analyzeString SQLConnection.analyze() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.analyze()ATTACH SQLConnection.attach() メソッドが呼び出されたことを示します。attachString SQLConnection.attach() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.attach()BEGIN SQLConnection.begin() メソッドが呼び出されたことを示します。beginString SQLConnection.begin() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.begin()CLOSE SQLConnection.close() メソッドが呼び出されたことを示します。closeString SQLConnection.close() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.close()COMMIT SQLConnection.commit() メソッドが呼び出されたことを示します。commitString SQLConnection.commit() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.commit()COMPACT SQLConnection.compact() メソッドが呼び出されたことを示します。compactString SQLConnection.compact() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.compact()DEANALYZE SQLConnection.deanalyze() メソッドが呼び出されたことを示します。deanalyzeString SQLConnection.deanalyze() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.deanalyze()DETACH SQLConnection.detach() メソッドが呼び出されたことを示します。detachString SQLConnection.detach() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.detach()EXECUTE SQLStatement.execute() メソッドまたは SQLStatement.next() メソッドが呼び出されたことを示します。executeString SQLStatement.execute() メソッドまたは SQLStatement.next() メソッドが呼び出されたことを示します。 flash.data.SQLStatement.execute()OPEN SQLConnection.open() メソッドまたは SQLConnection.openAsync() メソッドが呼び出されたことを示します。openString SQLConnection.open() メソッドまたは SQLConnection.openAsync() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.open()flash.data.SQLConnection.openAsync()REENCRYPT SQLConnection.reencrypt() メソッドが呼び出されたことを示します。reencryptString SQLConnection.reencrypt() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.reencrypt()RELEASE_SAVEPOINT SQLConnection.releaseSavepoint() メソッドが呼び出されたことを示します。releaseSavepointString SQLConnection.releaseSavepoint() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.releaseSavepoint()ROLLBACK_TO_SAVEPOINT SQLConnection.rollbackToSavepoint() メソッドが呼び出されたことを示します。rollbackToSavepointString SQLConnection.rollbackToSavepoint() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.rollbackToSavepoint()ROLLBACK SQLConnection.rollback() メソッドが呼び出されたことを示します。rollbackString SQLConnection.rollback() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.rollback()SCHEMA SQLConnection.loadSchema() メソッドが呼び出されたことを示します。schemaString SQLConnection.loadSchema() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.loadSchema()SET_SAVEPOINT SQLConnection.setSavepoint() メソッドが呼び出されたことを示します。setSavepointString SQLConnection.setSavepoint() メソッドが呼び出されたことを示します。 flash.data.SQLConnection.setSavepoint()
MemoryError MemoryError 例外は、メモリ割り当て要求が失敗した場合にスローされます。Error MemoryError 例外は、メモリ割り当て要求が失敗した場合にスローされます。

デスクトップマシンでは、メモリ割り当ての失敗はほとんど発生しません。ただし、割り当て要求が極端に大きい場合はこの限りではありません。例えば 32 ビット Windows 版のプログラム(アドレス空間が 2 GB)で 10 GB の割り当てを要求した場合などは、要求を満たすことが不可能であるため、この例外が発生します。

デフォルトでは、Flash Player は ActionScript プログラムが割り当てられるメモリの量を制限しません。

次の例は、MemoryError を生成する 1 つの方法を示しています。 package { import flash.display.Sprite; import flash.errors.MemoryError; import flash.utils.setInterval; public class MemoryErrorExample extends Sprite { private var crashingStr:String; private var intervalId:Number; public function MemoryErrorExample() { crashingStr = "abcdefghijklmnopqrstuvwxyz"; intervalId = setInterval(exhaustMemory, 50); } public function exhaustMemory():void { try { crashingStr += crashingStr; } catch(e:MemoryError) { trace(e); } } } }
MemoryError 新しい MemoryError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい MemoryError オブジェクトを作成します。
StackOverflowError ActionScript は、スクリプトで使用できるスタックを使い切った場合に StackOverflowError 例外をスローします。Error ActionScript は、スクリプトで使用できるスタックを使い切った場合に StackOverflowError 例外をスローします。ActionScript はスタックを使用して、スクリプト内で行われた各メソッド呼び出しに関する情報(例えば、メソッドが使用するローカル変数)を保管します。使用できるスタックスペースの量は、システムによって異なります。

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

次の例では、サンプル 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(); } } }
StackOverflowError 新しい StackOverflowError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい StackOverflowError オブジェクトを作成します。
DRMManagerError DRMManager は DRMManagerError イベントを送出してエラーを報告します。Error DRMManager は DRMManagerError イベントを送出してエラーを報告します。 flash.net.drm.DRMManagerDRMManagerError DRMManagerError クラスのインスタンスを新規作成します。messageStringエラーの説明 idint一般的なエラー番号です。 subErrorIDint特定のエラー番号です。 DRMManagerError クラスのインスタンスを新規作成します。 toString デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。エラーメッセージです。 String デフォルトでは "Error" というストリングを返します。Error.message プロパティが定義されている場合は、その値を返します。 subErrorID 特定のエラー番号です。int 特定のエラー番号です。 IOError IOError 例外は、ある種の入出力エラーが発生した場合にスローされます。Error IOError 例外は、ある種の入出力エラーが発生した場合にスローされます。例えば、未接続または切断済みのソケットに対して読み書き操作を実行しようとすると、IOError 例外がスローされます。 次の例では、ロードされていない Sound ストリームをクローズしようとしたときに IOError 例外をスローします。 package { import flash.display.Sprite; import flash.errors.IOError; import flash.media.Sound; public class IOErrorExample extends Sprite { public function IOErrorExample() { var music:Sound = new Sound(); try { music.close(); trace("Stream closed."); } catch (error:IOError) { trace("The stream could not be closed, or the stream was not open."); } } } } IOError 新しい IOError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい IOError オブジェクトを作成します。 IllegalOperationError IllegalOperationError 例外は、メソッドが実装されていないか、使用方法に実装が対応していない場合にスローされます。Error IllegalOperationError 例外は、メソッドが実装されていないか、使用方法に実装が対応していない場合にスローされます。

例えば、次のような状況で無効な操作エラーの例外が発生します。

  • 基本クラス(DisplayObjectContainer など)に、ステージでサポートされている範囲を超えた機能(マスクなど)がある場合。
  • アクセシビリティのサポートを含めずにコンパイルされたプレーヤーの環境で、ある種のアクセシビリティ関連メソッドを呼び出した場合。
  • mms.cfg での設定により、FileReference アクションが禁止されている場合。
  • 参照ダイアログボックスが既に表示されているときに ActionScript が FileReference.browse() 呼び出しを実行しようとした場合。
  • ActionScript が、FileReference オブジェクトでサポートされていないプロトコル(FTP など)を使用しようとした場合。
  • ランタイムプレーヤーでオーサリング時専用の機能を呼び出した場合。
  • タイムライン上に配置されたオブジェクトに対して名前を設定しようとした場合。
次の例は、IllegalOperationError ハンドラーの使用を示しています。 package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; public class IllegalOperationErrorExample extends Sprite { public function IllegalOperationErrorExample() { var child:Sprite = new Sprite(); try { addChild(child); } catch(e:IllegalOperationError) { trace(e); } } public override function addChild(child:DisplayObject):DisplayObject { throw new IllegalOperationError("addChild cannot be performed on the IllegalOperationErrorExample class"); } } }
IllegalOperationError 新しい IllegalOperationError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい IllegalOperationError オブジェクトを作成します。
EOFError EOFError 例外は、取得できるデータの末尾よりも後の部分を読み取ろうとした場合にスローされます。flash.errors:IOError EOFError 例外は、取得できるデータの末尾よりも後の部分を読み取ろうとした場合にスローされます。例えば、IDataInput インターフェイスの読み取りメソッドのいずれかを呼び出したとき、その読み取り要求を満たす量のデータが存在しない場合は EOFError がスローされます。 次の例では、EOFErrorExample クラスを使用し、取得できるデータの末尾よりも後の部分を読み取ろうとした場合に生成されるエラーを示します。これを行うには、以下の手順を実行します。
  1. コンストラクターが ByteArray オブジェクト byteArr を作成し、ブール値 false をバイトストリームに書き込みます(writeBoolean() を使用)。
  2. byteArr の位置は 0(データストリームの先頭)にリセットされます。
  3. readBoolean() を使用して、1 バイトがデータストリームから削除されます。データストリームには、含まれるデータが存在しなくなります。
  4. EOFError オブジェクトをキャッチするように設定されたエラー処理コードセグメント内で、readBoolean() が再び呼び出されます。これは EOFError をキャッチして trace() ステートメントに渡し、このステートメントは EOFError オブジェクトに関連付けられたエラーメッセージを出力します。
package { import flash.display.Sprite; import flash.errors.EOFError; import flash.utils.ByteArray; public class EOFErrorExample extends Sprite { public function EOFErrorExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); trace(byteArr.length); // 1 byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } catch(e:EOFError) { trace(e); } try { trace(byteArr.readBoolean()); } catch(e:EOFError) { trace(e); // EOFError: Error #2030: End of file was encountered. } } } }
flash.utils.ByteArrayflash.utils.IDataInputflash.net.Socketflash.net.URLStreamEOFError 新しい EOFError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 新しい EOFError オブジェクトを作成します。
InvalidSWFError Flash ランタイムでは、破損している SWF ファイルを検出したときに、この例外をスローします。Error Flash ランタイムでは、破損している SWF ファイルを検出したときに、この例外をスローします。 InvalidSWFError 新しい InvalidSWFError オブジェクトを作成します。messageStringエラーオブジェクトに関連付けられたストリングです。 idint0 新しい InvalidSWFError オブジェクトを作成します。