ActionScript 3.0 try..catch - PullRequest
       23

ActionScript 3.0 try..catch

5 голосов
/ 14 июня 2011

Если я использую

try{
    function1();
    function2();
    function3();
}
catch(e:Error){
    function4();
}

и, скажем, в function2 () выдается исключение, какой код выполняется по определению?будет ли выполнена функция 3 ()?будут ли эффекты function1 присутствовать после улова?(есть языки программирования, которые «перематывают» эффекты, например, если весь блок не был выполнен)

спасибо за разъяснения!

1 Ответ

9 голосов
/ 14 июня 2011

Try catch выполнит весь код, пока не сгенерировано исключение.В этот момент исключение будет пузыриться до тех пор, пока оно не попадет в блок перехвата или программа не закроется.Flash не «перематывает» какой-либо код, который он выполнил.

Скажите, что function2 () - 10 строк, а строка 4 выдает исключение, строки 5-10 не будут выполнены.Также не будет функционировать3 ().Код перейдет в ваш catch и затем выполнит function4 ().

Другая конструкция для использования в try..catch .. - это блок finally, представляющий собой фрагмент кода, который выполняется после try или catch,Это особенно полезно для таких вещей, как myNetConn = null, где вы могли иметь ошибку при закрытии NetConnection, но все еще хотите обнулить объект.

...