Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

Как глобально отлавливать исключения?   Найти похожие ветки 

 
Mx ©   (2005-07-22 18:33) [0]

Допустим есть пачка модулей, просто исходных модулей. Не факт, что они будут использоваться в проекте, где есть TApplication. Так вот существует ли способ написать (зарегистрировать) обработчик, куда будут направляться все исключения? Переменная ExceptProc похоже не подходит, так как при наличии TApplication в ExceptProc ничего не придет. Об этом сказано в справке и уже проверено. Перелазил кучу модулей RTL и VCL и совсем запутался.

Дело в том, что у меня куча разных потоков и разных объектов в этих потоках, какие-то шарятся всеми, какие-то потоко-зависимы, а вот систему обработки исключений хотелось бы сделать единой, к тому же необходим четкий отлов не только "моих" ошибок (raise, которые я написал), но и остальных.

Возможно ли такое?


 
Lexer ©   (2005-07-22 18:40) [1]

Application.OnException


 
Mx ©   (2005-07-22 18:45) [2]

Если бы все было так просто! Это вообще-то пакет, причем для CLX, юзать в нем напрямую Application и событие, которое может быть переназначено (а тогда еще и TApplicationEvents понадобится) я думаю неправильно.


 
Digitman ©   (2005-07-22 18:50) [3]


> Дело в том, что у меня куча разных потоков


вот и заключай тело поточной ф-ции в try..except

ничто этому не мешает, и это вовсе не сложно

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


 
Гаврила ©   (2005-07-22 18:53) [4]

попробуй
Classes.ApplicationHandleException


 
Lexer ©   (2005-07-22 18:53) [5]

>Mx ©   (22.07.05 18:45) [2]
>юзать в нем напрямую Application и событие, которое может быть переназначено (а тогда еще и TApplicationEvents понадобится) я думаю неправильно.


главное работает, и как вариант вполне приемлен


 
Mx ©   (2005-07-22 18:54) [6]


> Digitman ©   (22.07.05 18:50) [3]

Блин, а знаешь че оказалось! Ведь я так и сделал! Правда для другого и очень давно, а теперь подзабыл... Мне ведь действительно исключительно во вторичных потоках надо отлавливать все. Спасибо... за напоминание :)

А так получается, что универсального способа все-таки нет?


 
Mx ©   (2005-07-22 18:55) [7]


> Гаврила ©   (22.07.05 18:53) [4]
> Classes.ApplicationHandleException

А если ее захватить конструктор TApplication? Гарантировано ли он загрузится раньше моего пакета?


 
Гаврила ©   (2005-07-22 18:55) [8]

Ккак говорится "поспешишь - штаны насмешишь"
короче, фигню сказал, пардон


 
Mx ©   (2005-07-22 19:06) [9]


> Гаврила ©   (22.07.05 18:55) [8]
> короче, фигню сказал, пардон

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
9-1114243463
Trof
2005-04-23 12:04
2005.08.14
Стычки между ботами. Glscene


3-1120636072
Lex_!
2005-07-06 11:47
2005.08.14
Реиндексация таблиц


14-1121873134
drakoga
2005-07-20 19:25
2005.08.14
Где в Делфи7 компонент NMSMTP


14-1122018175
Fin
2005-07-22 11:42
2005.08.14
Что делать или как поступить?


14-1121802945
JohnJ
2005-07-19 23:55
2005.08.14
не проигрывается музыка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский