Форум: "Начинающим";
Текущий архив: 2011.02.20;
Скачать: [xml.tar.bz2];
ВнизОбработчик ошибок TWordApplication Найти похожие ветки
← →
Василич (2010-12-01 07:44) [0]Добрый день, уважаемые мастера. Вот этот обработчик не работает, есть ли варианты?
try
WA1.Documents.Open(Word_FileName,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam);
except
On EOleException Do MessageDlg("Отсутсвует файл shablon.doc",mtError,[mbOk],0);
end;
← →
sniknik © (2010-12-01 08:06) [1]обработчик работает, а вот обработкой ЭТО считать нельзя, это сокрытие реальной ошибки ради собственной фигни.
(вот что нужно считать вредоносным кодом, и сажать за него года на 2... а не это - http://delphimaster.net/view/15-1291044643/ )
← →
Василич (2010-12-01 09:30) [2]sniknik, да тема интересная.
← →
Anatoly Podgoretsky © (2010-12-01 10:03) [3]Особенно будет удивление, если при проверке окажется, что файл shablon.doc не отсутствует.
← →
Василич (2010-12-01 10:44) [4]Так все-таки, как написать обработчик на отсутствие/присутсвие файла через TWordApplication?
← →
Ega23 © (2010-12-01 11:22) [5]
> как написать обработчик на отсутствие/присутсвие файлаif not FileExists(ShablonFileName) then
ShowMessage("Otsutstvuet file shablon.doc")
else
begin
try
WA1.Documents.Open( .......
except on E.Exception do
....
end;
end;
← →
sniknik © (2010-12-01 11:24) [6]а что делает твой "обработчик"? выводит сообщение?
т.е. смысл? любой ексепт не закрытый в try except тоже выводит сообщение (только более достоверное), что ты сделал тут такого (кроме вредительства) чтобы считать это обработкой?
в общем убери отсебятину, т.е. вообще блок try except и будет в 1000 раз лучше.
← →
12 © (2010-12-01 11:29) [7]или так
> try
> WA1.Documents.Open(Word_FileName,
> EmptyParam, EmptyParam, EmptyParam,
> EmptyParam, EmptyParam, EmptyParam,
> EmptyParam, EmptyParam, EmptyParam,
> EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam);
>
> except
> On E:Exception Do
begin
if not FileExists(ShablonFileName) then
ShowMessage("Otsutstvuet file " + ShablonFileName) else
E.Message := E.Message + " А файлик " + ShablonFileNameна +" проверено, на месте");
Raise;
end;
> end;
← →
Василич (2010-12-01 11:38) [8]Хехе, Ega23 спасибо, в принципе и так можно.
sniknik, мой обработчик (листинг выше) не работает. При отсутствии файла шаблон.док - начинает ругаться debugger, а я бы хотел чтобы ругалось мое сообщение по except через MessageDlg. Но тут похоже проблема что try..except не совсем хорошо работает с TWordApplication (WA1 - OLE объект), или я не допонимаю чего-то.
← →
Ega23 © (2010-12-01 11:47) [9]
> sniknik, мой обработчик (листинг выше) не работает
Он работает.
> начинает ругаться debugger
А ты запусти его не из-под отладчика.
> а я бы хотел чтобы ругалось мое сообщение по except через
> MessageDlg.
Application.OnException + F1
> тут похоже проблема что try..except не совсем хорошо работает
Он отлично работает. Всегда.
> (WA1 - OLE объект)
Это да. Но кроме EOleException существует ещё огромный зоопарк различных классов исключений, включая потенциальные твои собственные классы. А ты проверяешься только на ооочень маленькую их часть.
> я не допонимаю чего-то
Есть такое дело.
← →
sniknik © (2010-12-01 11:57) [10]> а я бы хотел чтобы ругалось мое сообщение по except через MessageDlg.
программа лично для тебя или предполагается еще хоть один пользователь? если для тебя лично, то парься как пожелаешь, если для кого то, то избавь его от мучений, передай заказ программисту.
p.s. если бы ты пришел к нам (да и в любую программистскую контору, что не вчера "родилась" и успела пострадать от таких "шедевров") то твою кандидатуру сняли бы увидев твой код (его мало, но он ужасен).
← →
Василич (2010-12-01 12:25) [11]sniknik, я работаю не программистом, можешь успокоиться =) Я написал несколько небольших утилит по обработке детализаций , они работают уже 1.5 года и позволяют обойти нудную ручную обработку длительностью в 3-4 дня. Коряво это написано или нет, но это работает. На данный момент я пытаюсь оптимизировать некоторые вещи, написанные на скорую руку.
ps: тут кажеться раздел для новичков, а не для профи устраивающихся к кому-то на работу.
← →
Василич (2010-12-01 12:29) [12]Ega23, мое почтение, исчерпывающий ответ. Спасибо.
← →
Ega23 © (2010-12-01 12:33) [13]
> Коряво это написано или нет, но это работает. На данный
> момент я пытаюсь оптимизировать некоторые вещи, написанные
> на скорую руку.
поверь опыту: лучше писать правильно. Отмазки "я не программист, просто начальник сказал", "пусть плохо, но это работает" и т.п. - это всего лишь отмазки. Практика показывает, что нет ничего более постоянного, чем временное, а также, что грабли выплывают через пару лет и в совершенно неожиданных местах.
Ну и коли ты взялся оптимизировать что-то коряво работающее, надо понимать, что ты делаешь. А для этого нужна квалификация. Иначе ты такого наоптимизируешь - мама не горюй.
← →
Anatoly Podgoretsky © (2010-12-01 13:39) [14]> Василич (01.12.2010 11:38:08) [8]
Какой еще отладчик в приложение?
← →
Anatoly Podgoretsky © (2010-12-01 13:41) [15]> sniknik (01.12.2010 11:57:10) [10]
А если бы повезло пройти, то уволили бы на второй день?
← →
Anatoly Podgoretsky © (2010-12-01 13:41) [16]> Василич (01.12.2010 12:25:11) [11]
Новички это те кто обладают начальным набором знаний.
← →
sniknik © (2010-12-01 16:43) [17]> А если бы повезло пройти, то уволили бы на второй день?
могут и на третий, как только увидят.
> Новички это те кто обладают начальным набором знаний.
+ желают учится.
те кто дельные советы воспринимает в штыки, типа "у меня все правильно, меня все устраивает, и вообще я не то спрашивал скажите именно то в тех понятиях которые мне понятны" (обычно эти "понятия" - код для копи пасте) это воинствующие ламеры.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.02.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c