私は次のActionScript 3のコードでtry-catchブロックを使用しています:SubtitleController
コンストラクタは、subtitlePath
をロードしようとError #2044: Unhandled ioError
をスローしますが、エラーがtry
文によって捕捉されないtry-catchが機能しませんか?
try {
this._subtitle = new SubtitleController(subtitlePath, _framerate);
this._subtitle.addEventListener(Event.COMPLETE, subtitleLoaded);
}
catch (e:Error) {
trace('subtitle not found');
}
。エラーは単にtry
ステートメントが存在しなかったようにスローされます。
確かに、私は
this._subtitle.addEventListener(IOErrorEvent.IO_ERROR, function (ev:Event) { trace('subtitle not loaded'); });
this._subtitle = new SubtitleController(subtitlePath, _framerate);
this._subtitle.addEventListener(Event.COMPLETE, subtitleLoaded);
でそのコードを置き換えることができますし、それはほとんど動作しますが、それはそのエラーをtrowing停止し、代わりに別のものをスローします。
しかし、それを行うにはtry-catch
ブロックの全体のポイントではありませんか?なぜそれはtry-catch
では機能しませんが、通常のイベントリスナーでは機能しますか?
adobeが作ったactionscriptライブラリは実際には醜いですが、複数のタイプの 'イベントハンドラ'パターンと例外が非常にうまくいきます。例外/エラーは、イベントに対して頻繁にブロードキャストされるようです。 – meandmycode