Новое стандартное исключение ExStringOverflow

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Peter
партнер
Сообщения: 28
Зарегистрирован: Пт, 19/10/2007 11:49
Имя Фамилия: Петр Кузьмин
Откуда: ЗАО "Галактика Про"
Контактная информация:

Новое стандартное исключение ExStringOverflow

Сообщение Peter »

После перехода на Atlantis 5.3 моя программа стала прерываться по исключению ExStringOverflow. Раньше все работало. В документации описания данного исключения не нашел (документация от 30.01.2008). Есть подозрение, что в 5.3 добавились стандартные исключения, хотелось бы получить их описание (в какой момент возникают, на что влияют).
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

видимо у вас есть try блок, который на except по else обрабатывает все исключения
обработайте там это исключение, поставив продолжение выполнения, если вас не интересует переполнение строк
Peter
партнер
Сообщения: 28
Зарегистрирован: Пт, 19/10/2007 11:49
Имя Фамилия: Петр Кузьмин
Откуда: ЗАО "Галактика Про"
Контактная информация:

Сообщение Peter »

Так и сделал. Просто боюсь что еще что-нибудь появится. Был бы полный список исключений, сам решил бы как реагировать на каждое.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

вообще полный список есть в документации, которая постепенно пополняется
будет добавлено и это
mazneff
Сообщения: 7
Зарегистрирован: Пт, 07/09/2007 15:00
Имя Фамилия: Валерий Мазнев

Сообщение mazneff »

появилось исключение ExStringOverflow, срабатывающее при переполнении строки при выполнении операции S := S + xxx.

Пример:
---------------------------------------------

Код: Выделить всё

interface TheOne22;
create view as select * from x$files;

screen sc;
buttons cmTheButton;

<<
<. Push me .>
>>

end;

var s : string;

    handleevent
        cminit:
        {
            var i : word;
            s := '';
            for (i-=i; ++i < 200;)
               s += i mod 10;
        }

        cmTheButton:
        {
            _try
                s := s + '0123456789';
            _except
                on ExStringOverflow: s := 'overflow';

            message(s);
        };

    end;
end.
Ответить