什么是使Flex应用程序崩溃的最可靠方法?

时间:2011-09-11 07:07:10

标签: flex crash

如果满足某些条件,我需要添加一些会导致我的Flex应用程序崩溃的代码。我需要它来处理Flex应用程序所处的任何状态(可能它没有完全初始化,也许某些组件仍然被加载等)。

实现这一目标的最可靠方法是什么?

2 个答案:

答案 0 :(得分:3)

尝试unresolved crash bugs之一,例如this one

public function TestVerify () { 
    try { 
        with (this) { 
            return; 
        } 
    } 
    catch (e) { 
        trace('catch'); 
    } 
    finally { 
        trace('finally'); 
    } 
} 

答案 1 :(得分:0)

评论有点拖延;但我想发布一些代码来证明关于未捕获异常和崩溃应用程序的观点。所以,就是这样。

如果您想引发异常,请使用throw commandError 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;的方式做一些事情。但是,在评论中你坚持认为这不是你想要做的。