Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1289334806
TUser
2010-11-09 23:33
2011.02.20
Школьник XXII века узнает


6-1234780921
антон1243232
2009-02-16 13:42
2011.02.20
Подскажите новичку NetBios


15-1289251794
Юрий
2010-11-09 00:29
2011.02.20
С днем рождения ! 9 ноября 2010 вторник


2-1290846549
Чайник
2010-11-27 11:29
2011.02.20
Удалить файл


15-1288465490
Делфиец
2010-10-30 23:04
2011.02.20
Зацените прогу





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский