Java の場合、例外で送出するクラスは Throwable の子孫であるところの Error なり Exception のサブクラスを使用する。
一方 ActionScript では例外に使用するデータについて型の制限が存在しない。一応、Adobe 的には「Error のサブクラス使おうね」というガイドラインはあるものの、言語仕様的なしばりは存在していないようだ。超ビックリ。
なので例外で投げるデータは文字列でもおk
package exceptiontest { import mx.controls.Alert; public class ExceptionHoge { public function hoge():void { try { this.throwException(); } catch (e:String) { Alert.show("exception:=" + e.toString()); } } public function throwException():void { throw "例外です"; } } }
また、任意のクラスのインスタンスを使用できる。無意味なコードではあるけど、下記のようなコードでも意図通り例外を catch できる。
package exceptiontest { import mx.containers.Accordion; import mx.controls.Alert; public class ExceptionHoge { public function hoge():void { try { this.throwException(); } catch (e:Accordion) { Alert.show("exception:=" + e.toString()); } } public function throwException():void { throw new Accordion(); } } }