, 나는 같은 시도-catch 블록했습니다 :이 표시 목록에 (안 스프라이트,도 어떤 종류의 DisplayObject) 아닌 내부 클래스를 발생 ,하지만 를 확장 EventDispatcher. 이러한 클래스는 외부에서로드 된 SWF에 있습니다 (중요한 경우).ActionScript3에서 디스패치 한 ErrorEvent를 잡는 방법은 무엇입니까? 내 응용 프로그램에서 몇 가지 포인트에서
루트 클래스에서try {
... some logic that may throw Error
} catch (e:Error) {
var errorEvent:ErrorEvent = new ErrorEvent(ErrorEvent.ERROR, true);
errorEvent.text = e.getStackTrace();
dispatchEvent(errorEvent);
}
, 이것은 내가 무엇을 가지고 :
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtErrorHandler);
loaderInfo.uncaughtErrorEvents.addEventListener(ErrorEvent.ERROR, onErrorEventHandler);
stage.addEventListener(ErrorEvent.ERROR, onErrorEventHandler);
protected function onUncaughtErrorHandler(event:UncaughtErrorEvent):void
{
var message:String;
if (event.error is Error) {
message = event.error.getStackTrace();
} else if (event.error is ErrorEvent) {
message = ErrorEvent(event.error).text;
} else {
message = event.error.toString();
}
trace(message);
}
protected function onErrorEventHandler(event:ErrorEvent):void
{
trace(event.text);
}
어느 핸들러가 호출되지만, 그 오류 이벤트 거품까지 내가 콘솔에서 볼 및 디버그 모드에서 팝업으로, 하지만 어떻게 그걸들을 수 있습니까 루트 클래스?
오류는 주 스레드 또는 특정 비즈니스 논리의 실행을 중단시키지 않기 때문에이 작업을 수행합니다.
하여 addEventListener :
FlashPro의 다음 작품 LDMS BY
편집 : 여기에 귀하의 루트 클래스에 추가하는 예입니다? –
@WillKru 글쎄, 루트 클래스에서 듣고 싶습니다. 질문을 편집했습니다. –
'버블 링'을 연구하고 어떻게 작동하는지 [actionscript에서 오류 처리] (http://www.adobe.com/ devnet/actionscript/articles/event_handling_as3.html) 적절한 오류 처리를 완전히 이해하기 위해 –