如果滿足某些條件,我需要添加一些代碼,以使我的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