2012-02-09 7 views
1

Загрузка файла в приглашение flex для ошибки с именем Error # 2044: Unhandled IOErrorEvent :. text = Ошибка # 2124: Загруженный файл неизвестен. Что мне нужно сделать, когда возникает эта ошибка, я хочу вызвать функцию. Итак, я помещаю блок кода, вызывающий появление ошибки в блоке try catch. Но когда произошла ошибка, она не попадает в catch. Ниже приведен фрагмент кода.Обработка ошибок в flex

try { 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler); 
    loader.loadBytes(fileReferance.data); 
} 
catch(err:*) { 
    functionTocall(fileReferance); 
} 

Как справиться с этим ..

ответ

6

Есть 2 вида ошибок в флэше: синхронные и асинхронные. Синхронные ошибки могут обрабатываться блоком try..catch. Такие ошибки бросаются немедленно, когда выполнение кода завершается с ошибкой. Но вы не можете точно знать, когда будет вызвана асинхронная ошибка. Вы пытаетесь обрабатывать асинхронную ошибку. Вот почему вы не можете поймать его так, как вы это делаете.
Вы должны добавить прослушиватель событий для IOErrorEvent.

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 
... 
private function onIOError(e:IOErrorEvent) { 
    .... 
} 
0

просто добавить еще один слушатель, который слушает для IOErrorEvent:

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler); 
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler); 
loader.loadBytes(fileReferance.data); 

вот оно

Смежные вопросы