Я использую блок try-catch в следующем коде Actionscript 3:
try {
this._subtitle = new SubtitleController(subtitlePath, _framerate);
this._subtitle.addEventListener(Event.COMPLETE, subtitleLoaded);
}
catch (e:Error) {
trace('subtitle not found');
}
Конструктор SubtitleController
затем пытается загрузить subtitlePath
и выдает Error #2044: Unhandled ioError
, но ошибка не фиксируется оператором try
. Ошибка просто выдается, как будто не существовало никакого оператора 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);
и он почти работает, он перестает выдавать эту ошибку, но вместо этого выдает другую.
Но разве не в этом смысл try-catch
блоков? Почему он не работает с try-catch
, но работает с обычным прослушивателем событий?