| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как анализировать отловленный exception? |
| Автор: кварк 26.11.2004, 08:57 | ||
Мучаюсь вопросом: ловлю exception.
А как проанализировать, какое именно исключение поймано? Неужели строки сравнивать? Так при разных локальных установках, строки Message, видимо, тоже разными будут (мной лично не проверено). Как быть? Может, есть какой-нибудь числовой идентификатор, которого я не нашел? |
| Автор: SPrograMMer 26.11.2004, 09:44 | ||
| Строки сравнивать это уж сильно Каждое Exception принадлежит какому-то классу, например,
|
| Автор: кварк 26.11.2004, 10:21 |
| Э... А если я не знаю класса? Хотя знаю, дебагер выдает: EOleException. А уж у этого класса есть ErrorCode. Его, по всей видимости, и надо смотреть. Ведь так? :-) |
| Автор: <Spawn> 26.11.2004, 12:00 | ||||||
Зачем тебе код ошибки? Забудь про них. Экземпляр класса ошибки уже дает понять в чем дело. Например:
Аналогичный вариант:
|
| Автор: Alex 26.11.2004, 12:57 | ||
кварк, а для чего именно ты хочешь отлавливать ошибку. Если для того, чтобы дать более понятное сообщение, то во первых можно перевести все тексты сообщений, которые имеются в Delphi (могу дать уже переведенные), во вторых можно к тому сообщению, которое у тебя имеется в e.Message в начало добавить осмысленный текст к примеру:
Если ты хочешь получить всю информацию об ошибки и строке в модуле, где она произошла, после чего записать это в лог, то тут тебе поможет технология map-файлов. |
| Автор: кварк 26.11.2004, 13:56 | ||
Надо перебрать записи. Функция перебора (не мной написанная) возвращает исключение: нет больше записей. Если его поймаешь, то больше ничего делать не надо. А если я поймаю чего-то другое? - задумался я. То есть как-то надо отличить в общем то, нормальную ситуацию от ненормальной. Сделал как написал ранее, через ErrorCode:
Вроде, работать будет достаточно надежно. Или я не прав? |