Ошибка времени выполнения возникает тогда, когда в коде ActionScript происходит некорректный процесс, препятствующий предполагаемому выполнению содержимого. Для обеспечения безотказной работы кода ActionScript необходимо создавать такие приложения, которые обрабатывают ошибки, то есть анализируют и устраняют их или, по крайней мере, сообщают пользователю о том, что случилось. Этот процесс называется
            
             обработкой ошибок
            
            .
           
           
            В целом обработка ошибок представляет собой многоплановую систему действий, включающую реакцию на многие виды ошибок, которые возникают как при составлении приложения, так и при его выполнении. Ошибки, возникающие во время компиляции программы, как правило, легче идентифицировать — их обязательно нужно устранить, чтобы завершить процесс создания SWF-файла.
           
           
            Ошибки выполнения обнаружить сложнее, поскольку для их возникновения необходимо, чтобы ошибочный код фактически был запущен. Если сегмент программы имеет несколько ветвей кода, например инструкцию
            
             if..then..else
            
            , тогда для подтверждения отсутствия ошибок в коде необходимо проверить все возможные условия со всеми возможными реальными значениями, которые может применить будущий пользователь программы.
           
           
            Ошибки выполнения можно разделить на две категории:
            
             ошибки программирования
            
            — ошибки в коде ActionScript, такие как задание неверного типа данных для параметра метода; и
            
             логические ошибки
            
            — ошибки проверки данных и ошибки управления значениями, такие как использование неверной формулы для расчета процентов в банковском приложении. Ошибки обоих этих типов часто можно обнаружить и исправить заблаговременно, если аккуратно проверить приложение.
           
           
            В идеале следует найти и устранить все ошибки в создаваемом приложении, прежде чем оно поступит в распоряжение конечного пользователя. Тем не менее, не все ошибки можно предвидеть и предотвратить. Например, если приложение ActionScript загружает какую-либо информацию с веб-сайта, этот процесс выходит за пределы контроля программиста. Если какой либо ресурс веб-сайта оказывается недоступен, тогда блок программы, зависящий от внешних данных, не сможет работать корректно. Самый важный аспект обработки ошибок заключается в подготовке к таким непредвиденным случаям и соответствующей реакции на них. Конечным пользователям необходимо продолжить работу с приложением или хотя бы получить сообщение об ошибке, в котором объясняется причина сбоя.
           
           
            Ошибки выполнения в ActionScript представляются двумя способами.
           
           
            - 
             
              Классы ошибок: многие ошибки можно отнести к определенному классу. Когда возникает ошибка, среда выполнения Flash (например, Flash Player или Adobe AIR) создает экземпляр специального класса ошибок, который связан с данной конкретной ошибкой. Код программы может использовать информацию, содержащуюся в объекте ошибки, чтобы подготовить соответствующий ответ на эту ошибку.
              
- 
             
              События ошибок: иногда ошибка возникает, когда среда выполнения Flash нормально срабатывает по событию. В этих случаях отправляется событие ошибки. Каждое событие ошибки имеет свой класс. Среда выполнения Flash передает экземпляр этого класса методам, которые приписаны к событию ошибки.
              
            Чтобы определить, может ли конкретный метод инициировать ошибку или событие ошибки, см. раздел описания методов в
            
             cправочнике ActionScript® 3.0 для платформы Adobe® Flash® Platform
            
            .
           
           
            
             Важные понятия и термины
            
            
             В следующем справочном списке перечислены важные термины, связанные с составлением программ для обработки ошибок.
            
            
             - 
              Асинхронность
             
- 
              Ситуация, при которой команда программы (например, вызов метода) не приводит к непосредственному результату. Результат (или ошибка) в этом случае принимает форму события.
             
             
             - 
              Перехват
             
- 
              Когда имеет место исключительная ситуация (ошибка выполнения) и когда код «знает» об этом, говорят, что код
              
               перехватил
              
              исключение. При перехвате исключения среда выполнения Flash прекращает уведомление другого кода ActionScript об этом исключении.
             
             
             - 
              Отладочная версия
             
- 
              Особая версия среды выполнения Flash, например, отладочная версия Flash Player или AIR Debug Launcher (ADL), которая содержит код уведомления пользователей об ошибках времени выполнения. В стандартных версиях Flash Player и Adobe AIR (которые использует большинство пользователей) ошибки, не обрабатываемые с помощью кода ActionScript, игнорируются. В отладочных версиях (включенных в Adobe Flash CS4 Professional и Adobe Flash Builder) при обнаружении необработанной ошибки появляется предупреждающее сообщение.
             
             
             - 
              Исключительная ситуация
             
- 
              Ошибка, возникающая во время работы приложения, которую среда выполнения Flash не может разрешить самостоятельно.
             
             
             - 
              Повторная генерация
             
- 
              При перехвате кодом исключения среда выполнения Flash больше не уведомляет о нем другие объекты. Для извещения остальных объектов об исключении важно, чтобы код мог
              
               повторно сгенерировать
              
              исключение и тем самым возобновлять процесс уведомления.
             
             
             - 
              Синхронность
             
- 
              Ситуация, при которой команда программы, например вызов метода, приводит к непосредственному результату или к немедленной генерации ошибки. При этом ответ может использоваться в одном и том же блоке кода.
             
             
             - 
              Генерация
             
- 
              Акт извещения среды выполнения Flash (и, как следствие, извещение других объектов и кода ActionScript) о возникновении ошибки называется
              
               генерацией
              
              ошибки.