ГлавнаяActionScript 3 — «100 советов» › Ошибки: try..catch..finally

Ошибки: try..catch..finally

June 19th, 2006
Для перехвата ошибок вы можете использовать (try..catch..finally statement).

Код:
try { // statements } catch (error:Error) { // statements } finally { // statements }

Первый блок внутри try – это место где ожидается возникновение ошибки. Далее идет блок catch который будет выполнится если в блоке try произойдет ошибка. Блоков catch может быть несколько с указанием на какой тип ошибки реагировать. И в конце идет блок finally, который выполняется после try и catch и выполняется всегда, даже если ошибка не была поймана в catch и дальнейшее выполнение кода будет прервано, или же было вызвано return, блок finally все равно выполняется.
Пример:

Код:
try { var value:* = new Array(); trace(value.getChildAt(0)); } catch(error:IOErrorEvent) { trace("IOErrorEvent catch: " + error); } catch(error:TypeError) { trace("TypeError catch: " + error); } catch(error:Error) { trace("Error catch: " + error); } finally { trace("Finally!"); } trace("Continuing with script...");

Результат выполнения:

Код:
TypeError catch: TypeError: Error #1006: getChildAt is not a function. Finally! Continuing with script...

В соответствии с типом ошибки выполнился блок catch(error:TypeError), и выполнение скрипта продолжилось.
Что произойдет, если не будет блока catch соответствующего типу возникшей ошибки:

Код:
try { var value:* = new Array(); trace(value.getChildAt(0)); } catch(error:IOErrorEvent) { trace("IOErrorEvent catch: " + error); } finally { trace("Finally!"); } trace("Continuing with script...");

Результат выполнения:

Код:
Finally! TypeError: Error #1006: getChildAt is not a function. at Timeline0_a24dfc5f2aa9864b9d4de27c9fa097db/::frame1()

Ошибка не была поймана, выполнился только блок finally и дальнейшее выполнение скрипта было прервано.

Категория: ActionScript 3 — «100 советов» Ярлыки: ,

Смотрите также

Класс Error, ошибки выполнения Перехват асинхронных ошибок
  1. Пока без комментариев.
  1. Пока нету.