如果满足某些条件,我需要添加一些代码,以使我的Flex应用程序崩溃。我需要它能够在Flex应用程序所处的任何状态下工作(也许它没有完全初始化,可能还有一些组件仍在加载等)崩溃Flex应用程序的最可靠方法是什么?
什么是最可靠的方法来实现它?
如果满足某些条件,我需要添加一些代码,以使我的Flex应用程序崩溃。我需要它能够在Flex应用程序所处的任何状态下工作(也许它没有完全初始化,可能还有一些组件仍在加载等)崩溃Flex应用程序的最可靠方法是什么?
什么是最可靠的方法来实现它?
尝试使用unresolved crash bugs之一,例如, this one:
public function TestVerify() {
try {
with (this) {
return;
}
}
catch (e) {
trace('catch');
}
finally {
trace('finally');
}
}
评论有点拖着;但我想发布一些代码来证明关于未捕获异常和崩溃应用程序的一点。所以,在这里。
如果要引起例外,请使用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;
行。但是,在评论中你坚持认为这不是你想要做的。
呵呵我喜欢最后一句话。 –
抛出异常? –
它保证会崩溃的应用程序?如果我没有弄错,URLLoader会在有一个未捕获的ioError但会导致应用程序崩溃时抛出异常,是吗? –
为什么你不显示模式弹出窗口,阻止用户与你的应用程序进行交互? – moropus