![]() |
|
||||||||||
|
|
|
|||||
|
Программируя на Яве, мы получаем великолепное средство отловки ошибок. В 7ом флэше появились зачаточные методы, напоминающие Яву:
try { // ... try block ... } catch(error[:ErrorType1]) { // ... catch block ... } [catch(error[:ErrorTypeN]) { // ... catch block ... }] [finally { // ... finally block ... }] Но всё равно нет автоматической отловки таких ошибок, как IndexArrayOutOfBoundsException, NullPointerException, CastException, IOException... Парсер кода не может найти такие ошибки. При создании класса мы на шаг приближаемся к наиболее быстрому нахождению ошибки: парсер уже может указать нам, что метод ссылается на отсутствующее поле класса или метод класса. Появилась неплохая сигнатура методов и полей, возможность строгой типизации, но нельзя поставить брейпоинты в классе. Нет методов для копирования объектов, поэтому возможно ошибки из-за непонимания, что копируется по значению, а что по ссылке. String ведь например в Яве сложный объект. firstArray = new Array(10,20,30); secondArray = firstArray; secondArray[0] = 20; trace(firstArray); // firstString = "flash"; secondString = firstString; secondString += " string"; trace(firstString); Ну ладно там массив, а что если нужно было клонировать более сложный объект? Персистенции и сериализации тут нет... Если инклудить файлы, то там должен быть заведомо правильный код, потому что дебагить его невозможно. Вопрос достаточно пространный к профессионалам. Если Вы считаете, что ситуация с дебагом не так плоха, то какие аргументы Вы можете привести в пользу того, что на флэше можно успешно дебагить. И как можно бороться с проблемой брейкпоинтов в классах и внешних файлах? с проблемой отсутствия сообщений о таких ошибках как NullPointerException или IndexArrayOutOfBoundsException.
__________________
Не всё то флэш, что шевелиться. |
|
|||||
|
Человек и Здание
|
Для IndexArrayOutOfBoundsException можно попробовать попереписывать встроенный класс array, но это дубовое и не факт что разумное решение
Других не вижу.Про копирование - класс стринг в яве не имеет к флешу ровно никакого отношения, равно как и ява вообще. Так, похожи друг на друга, как монета и канализационный люк. Копирование объектов можно сделать отдельной процедурой, определять тип члена и поступать соответственно. Кстати, сериализация под flash портирована ( http://www.sephiroth.it/test/unserializer/ ), но работает заметное время и возникают проблемы с языком (с юникодом, чтоб его) при обмене данными, например, с php.
__________________
Регардсы. |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
погу только посоветовать ASUnit навскидку,
хотя сам его не использовал .... во вторых нужно поставить дебаг-плеер и выводить логи в файл, еще профайлер от FLEX заюзать не помешает, но все это плюшечки, реальной работы как в Java тут сложно добиться.... |
|
|||||
|
[++]
|
Я насчёт явы не знаю, но с C++ никакого сравнения. Могу предположить, что NullPointerException и IndexArrayOutOfBoundsException не доступны т.к. флэш ведь просто не работает с памятью... Вообще было бы удобнее если бы хотя бы выводились предупреждения хотя бы о использовании неопределённых функций и переменных.
|
|
|||||
|
Человек и Здание
|
Цитата:
И ничего, молчок. Просто тачка виснет и видеопамять гадится. На юнихе та же картина - дамп памяти и привет...Так что мы тут еще очень много кушать...
__________________
Регардсы. |
|
|||||
|
[++]
|
Ну да, я имел ввиду Visual Studio
![]() |
|
|||||
|
Человек и Здание
|
ну это уже совсем много кушать
![]()
__________________
Регардсы. |
![]() |
Часовой пояс GMT +4, время: 11:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|