2012-02-09 87 views
1

在Flex提示中加載錯誤的文件稱爲錯誤#2044:未處理的IOErrorEvent :.文本=錯誤#2124:加載文件是未知類型。 我需要做的是當這個錯誤發生時,我想調用一個函數。 所以我把代碼塊導致try 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); 

就是這樣