Выявление ошибок обращения 

на этапе компиляции ActionScript 

 

 

В начале этой главы рассказывалось, что попытка обратиться к несуществующим 

переменной или методу приведет к возникновению ошибки обращения. Если для 

компиляции программы используется стандартный режим, то компилятор не  

сообщает об ошибках обращения. Вместо этого, когда программа выполняется в  

отладочной версии среды Flash, ошибки обращения проявляются в виде  

исключений. Напротив, если для компиляции программы используется строгий режим, 

компилятор сообщает об обращениях к несуществующим переменным и методам 

в типизированных выражениях и прекращает компиляцию. 

Например, в следующем коде создается переменная pet типа VirtualPet и этой 

переменной присваивается экземпляр класса VirtualPet: 

var pet: Virtual Pet = new VirtualPetCStan"); 

Затем в следующем коде происходит попытка обращения к несуществующему  

методу eatt ( ) через типизированную переменную pet: 

pet.eatt(new Sushi( )); 

В стандартном режиме предыдущий код успешно откомпилируется, однако на 

этапе выполнения программы произойдет ошибка обращения. В строгом режиме 

предыдущий код приведет к генерации следующей ошибки обращения на этапе 

компиляции и процесс компиляции будет завершен. 

1061: Call to a possibly undefined method eatt through a 

reference with static type zoo-.Virtual Pet. 

На русском языке текст ошибки будет следующим: Вызов, вероятно, неопределенного 

метода eatt через ссылку статического типа zoo:VirtualPet. 

Однако стоит отметить, что компилятор не сообщает об ошибках обращения,  

происходящих в нетипизированных выражениях. Более того, обращения к  

несуществующим переменным и методам через экземпляры динамических классов (таких 

как Ob j ect) не приводят к генерации вообще никаких ошибок обращения; вместо 

этого в результате возвращается значение undefined. 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям