2011-04-12 74 views
1

我不太瞭解UncaughtErrorEvent,無法讓我的Air 2.6應用程序工作。如果我用調試器遍歷代碼,我會得到非常奇怪的結果。ActionScript 3.0 UncaughtErrorEvent無法正常工作

這是代碼:

public class Main extends Sprite{ 
     public function Main(){ 
      loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);   
        // ... 
      } 
      ... 
     private function onUncaughtError(e:UncaughtErrorEvent):void 
     { 
      var error:Error = e.error; 
      Logger.log("Uncaught Error - Type: " + e.type + " - Message: " + error.message, "session"); 
     } 
} 

我在一個點上線var error:Error = e.error;設置斷點並啓動應用程序 ,發生異常和調試正常休息具體線路。

現在出現了奇怪的部分。

當我點擊「step over(F6)」時,我希望應用程序跳轉到下一行「Logger.log(...」),但是控制檯將顯示拋出的異常

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 

和應用程序進入剛剛復出運行,是永遠不會執行 怎麼這甚至可能行「Logger.log(...」?豈是說在var error:Error = e.error調試中斷,但下一行不執行?

感謝您的澄清

回答

2

AS3 reference讀取

當內容在調試器 版本的運行時間的運行,諸如Flash Player或 的AIR調試啓動器(ADL),的 調試版出現一個 未被捕獲的錯誤對話框當發生未被捕獲的錯誤。對於那些 運行時版本,錯誤對話框 即使在註冊uncaughtError 事件的偵聽器爲 時也會出現。要防止在該情況下出現 對話框,請調用 UncaughtErrorEvent對象的 preventDefault()方法。

+0

順便說一句,'e.error'可以是'Error'或'ErrorEvent'。 – Kodiak 2011-04-13 09:28:27