在flash AS3中如何设置单个try catch代码,以便捕获整个类中的任何错误?

Alm*_*bek 2 flash try-catch actionscript-3 throw

在Flash AS3中,我想编写单个try catch块以捕获整个类中的任何错误.
例如,我在myClass.as中有很多函数.我不想在每个函数中编写try catch块以便捕获此函数中的错误.
有没有办法做到这一点?

谢谢!

ktu*_*nik 8

你不能!除了使用AOP方法做到这一点之外,即使在AS3之外的其他语言也没有这样简单的方法.

最好的做法是让你的类冒泡错误(异常)并让更高层捕获并处理错误.

编辑 - 关于coment

实际上这个想法是自然的方式..你还需要手动捕捉每一个可能的错误.我会举个例子.注意,该示例的目的仅在于较低层和较高层之间的清晰度.

例如,您在中间层(您的业务流程)中有一个类:

public class MyBussiness {
    public function loadImages(){
        //for example here is a block of method
        //possibly throws exception. 
    }

    public function getLoan(){
        //lets assume here too
    }
}
Run Code Online (Sandbox Code Playgroud)

在更高层(我假设在你的视图 - MXML中)你捕获异常如下:

var myBussiness:MyBussiness = new MyBussiness():
try {
    myBussiness.loadImages();
    //any other sequence process
    myBussiness.getLoan();
}
catch(error:Error){
    //here you process error
    //show it to user or make LOG
}
Run Code Online (Sandbox Code Playgroud)

仍然不能像你期望的那样做出魔法,但这是最好的做法.Rember只将try catch放在有可能抛出错误的代码上,因为try catch很贵.