FLEX 里的全局错误处理

转自http://args.cn/post/2010/02/translation-flex-inside-the-global-error-handling/

----------------------------------------
资讯类型: 翻译
来源页面: http://www.summa-tech.com/blog/2010/01/04/global-error-handling-in-flex/
资讯原标题: Global Error Handling in Flex
资讯原作者: Brian Gray
FLEX 里的全局错误处理
我参与过不少大型的flex应用程序的开发,基本上所有关于平台的事情都让我感到高兴,包括快速构建原型,UI创建方面的强悍,不过运行时错误处理如此之难让我感到很郁闷。当程序缩放时,它会变得很难来保证它不会抛出一个运行时错误,默认的flash播放器没有任何响应,不给任何反馈和提示,这种事情将是不符合期望标准的。我找到了下面的这个方法(直到未来的flash player 10 bata版 支持这个)Jorg birkhold 描述的当任何错误抛出的时候,怎样调用事件分发器来抛出一个事件,代码如下:
private function onPreinitialize():void {
// setup global error handling
UIComponentGlobals.catchCallLaterExceptions = true;
systemManager.addEventListener(“callLaterError”, handleErrors);
}
我在主程序里添加了一个事件处理函数,做了如下操作:
1.在控制台里打印出堆栈信息以供调试、
2.弹出一个对话框给用户,这个要具体看抛出的是什么样的错误,当然这个不一定会显示到屏幕上,但是一定要确保平滑的过渡,并阻止用户进一步的交互操作
3.如果允许使用Javascript,那么调用JavaScript的方法,在这里你可以做一些你想要做的事情,但是我建议是让用户跳转到一个提示错误的页面,告诉他们那里出错了,给出正确的页面地址,并让他们回到刚刚出错的地方,重新开始。
public function handleErrors(event:Event):void {
if (event is DynamicEvent && event.hasOwnProperty(“error”)) {
// you could also send this back to your server
var error:Error = DynamicEvent(event).error as Error;
trace(“Error!\n” + error.getStackTrace());
Alert.show(“There has been an error in the application”, “”, Alert.OK);
if (ExternalInterface.available) {
ExternalInterface.call(“handleApplicationError”);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值