Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
Внизкак обработать исключение в чужой функции? Найти похожие ветки
← →
fzt (2011-08-17 10:43) [0]Hi
Как подавить/обработать чужую обработку ошибки?procedure A;
begin
try
<raise error here>
except
on Err: Exception do ShowMessage("Err");
end;
end;
Procedure My;
begin
A;
end;
Мне требуется не меняя код процедуры A, обработать ошибку без вываливания пользователю нага. Как?
← →
oldman © (2011-08-17 10:52) [1]
> не меняя код процедуры A
А ведь именно он и неверный!
ShowMessage в нем не появиться никогда.
← →
oldman © (2011-08-17 10:54) [2]Я фигню написал!!!
← →
Palladin © (2011-08-17 10:55) [3]никак
← →
fzt (2011-08-17 11:09) [4]А как-то подавить на время вызов ShowMessage можно?..
допустим что-то вродеOldPTR:=ShowMessage;
ShowMessage:=@EmptyProc;
<bad code here>
ShowMessage:=@OldPTR;
реализуемо?
← →
Ega23 © (2011-08-17 11:10) [5]
> реализуемо?
Нет.
← →
Ega23 © (2011-08-17 11:11) [6]Лучше перепиши А.
← →
fzt (2011-08-17 11:12) [7]А - сторонний компонент =(
← →
Ega23 © (2011-08-17 11:17) [8]
> А - сторонний компонент =(
И что такого? Возьми и перепиши.
← →
fzt (2011-08-17 11:21) [9]Имя нам - Легион разработчиков..
Мне после коммита каждому по почте компоненту отправить? =(
Не пойдёт, будут тонны срача вместо работу работать.
Блин.. вызов процедуры - 6 байт, ShowMessage - она особенная что-ли?
заменил на время на вызов пустышки и всё.. я просто хз как это на дельфи сделать
← →
Andy BitOff © (2011-08-17 11:37) [10]Вот, ели Розыч заглянет и сочтет нужным тебе чего-то объяснить, то шанс есть. Иначе тебе на хакер.ru =)
← →
Игорь Шевченко © (2011-08-17 11:52) [11]а ShowMessage ("вы используете триальную версию") не иначе
← →
Ega23 © (2011-08-17 12:00) [12]
> Имя нам - Легион разработчиков..
> Мне после коммита каждому по почте компоненту отправить?
Имя вам - Легион школоты, коль скоро процесс разработки такой "странный".
← →
Юрий Зотов © (2011-08-17 12:05) [13]> fzt (17.08.11 11:21) [9]
> заменил на время на вызов пустышки и всё..
> я просто хз как это на дельфи сделать
В модуле с процедурой A:
1. В секции interface объявляем переменнуюvar
AllowShowMessage: boolean = true;
2. В секции implementation перед процедурой A вставляем заглушку:procedure ShowMessage(S: string);
begin
if AllowShowMessage then
Dialogs.ShowMessage(S)
end;
Теперь, управляя извне переменной AllowShowMessage, можем запрещать или разрешать выдачу сообщения.
← →
fzt (2011-08-17 12:14) [14]2 Игорь Шевченко, угу.. и стесняюсь имея исходник на руках его подправить.
То что дураку понятно, логику нужно доказывать ©
2 Ega23 Когда в руках молоток - всё кажется гвоздями? Отлаженный десятилетием процесс. Мне его менять ни резона, ни хоть какого-то желания. Замечание не по адресу.
Смысл работы - материальные блага в обмен на мою узкую специализацию.
За организацию процесса разработки другим людям деньги платят.
Мне нужно перехватить исключение, или изменить способ оповещения о нём.
Если разраб компоненты любит наги, которые пользователь должен читать на не родном языке да ещё и промаргивать - его дело. Я их предпочитаю в лог файлы собирать например.
← →
Игорь Шевченко © (2011-08-17 12:20) [15]fzt (17.08.11 12:14) [14]
Я же не вижу, что у тебя в руках. А имея исходник, задавать такой вопрос, как ShowMessage запретить, несколько странно, не правда ли ? Поправил исходник ОДИН РАЗ и все довольны
← →
Ega23 © (2011-08-17 12:28) [16]
> Отлаженный десятилетием процесс.
> Мне после коммита каждому по почте компоненту отправить?
> Не пойдёт, будут тонны срача вместо работу работать.
Отлично отлаженный процесс. Имея на руках исходник и (судя по коммиту) SVN - компонент надо по почте рассылать.
← →
Anatoly Podgoretsky © (2011-08-17 12:49) [17]> fzt (17.08.2011 12:14:14) [14]
> Мне нужно перехватить исключение, или изменить способ оповещения о нём.
> За организацию процесса разработки другим людям деньги платят.
← →
_Юрий (2011-08-17 13:54) [18]В данном случае правильное решение - каким то образом заставить автора процедуры "A" убрать из нее говнокод. В противном случае вы получите уже два говнокода вместо одного.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c