如果满足某些条件,我需要添加一些会导致我的Flex应用程序崩溃的代码。我需要它来处理Flex应用程序所处的任何状态(可能它没有完全初始化,也许某些组件仍然被加载等)。
实现这一目标的最可靠方法是什么?
答案 0 :(得分:3)
尝试unresolved crash bugs之一,例如this one:
public function TestVerify () {
try {
with (this) {
return;
}
}
catch (e) {
trace('catch');
}
finally {
trace('finally');
}
}
答案 1 :(得分:0)
评论有点拖延;但我想发布一些代码来证明关于未捕获异常和崩溃应用程序的观点。所以,就是这样。
如果您想引发异常,请使用throw command和Error class。未捕获的异常不会使应用程序崩溃。
以下是您可以复制,粘贴和运行的示例。
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" applicationComplete="windowedapplication1_applicationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void
{
var error : Error = new Error();
throw error;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button />
</s:WindowedApplication>
如果您从Flash Builder执行此应用程序,您将看到弹出“标准”错误。但是,一旦您单击关闭,您仍然可以单击该按钮并与该应用程序进行交互。
有未被捕获的异常与崩溃应用程序不同;或阻止用户与应用程序交互。
如果您只是想阻止用户与应用互动,您应该能够按照FlexGlobals.topLevelApplication.enabled == false;
的方式做一些事情。但是,在评论中你坚持认为这不是你想要做的。