Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропуск Exсept=(( 
:(
    Опции темы
Chydik
Дата 9.10.2011, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 7.1.2007

Репутация: нет
Всего: нет



Всем Ре.
Вопрос заключается в том как при ошибке заполнить ее в лог и продолжить выполнение.
Для наглядности код.

Код

  try
    Domain := TStringList.Create;
    Domain.Delimiter := '.';
    Domain.DelimitedText := edtDomain.Text;
    Dom := '';
    for i := 0 to Domain.Count - 1 do
      begin
        Dom := Dom + 'DC=' + Domain.Strings[i]+',';
      end;
    if Copy(Dom, Length(Dom), Length(Dom)) = ',' then
      Dom := Copy(Dom, 1,Length(Dom) - 1);
    if cbbdom.ItemIndex = 0 then
    for i := 0 to strngrdImp.RowCount - 1 do
      begin
        if strngrdImp.Cells[1,i] <> '' then
          Begin
            Comp := GetObject('LDAP://OU='+edtOU.Text+','+Dom) as
              IADsContainer;
            Usr := Comp.Create('User', 'CN='+strngrdImp.Cells[1,i]) as IADsUser;
            Usr.Put('SamAccountName', strngrdImp.Cells[1,i]);
            Usr.Put('userPrincipalName', strngrdImp.Cells[1,i] + '@' + edtDomain.Text);
            Usr.SetInfo;
            Usr.SetPassword(strngrdImp.Cells[2,i]);
            Usr.AccountDisabled := False;
            Usr.SetInfo;
          end;
      end
      else
      for i := 0 to strngrdImp.RowCount - 1 do
        begin
          if strngrdImp.Cells[1,i] <> '' then
            Begin
              Comp := GetObject('WinNT://'+edtDomain.Text+',computer') as
                IADsContainer;
              Usr := Comp.Create('user', strngrdImp.Cells[1,i]) as IADsUser;
              Usr.SetPassword(strngrdImp.Cells[2,i]);
              Usr.SetInfo;
            end;
        end;
  except
    on E: EOleException do begin
       mmo1.Text := strngrdImp.Cells[1,i]+ ': ' + (E.Message);
    end else
      mmo1.Text := 'Add user: '+strngrdImp.Cells[1,i];
  end;

Вся загвоздка здесь.
Код

 except
    on E: EOleException do begin
       mmo1.Text := strngrdImp.Cells[1,i]+ ': ' + (E.Message);
    end else
      mmo1.Text := 'Add user: '+strngrdImp.Cells[1,i];
  end;

Т.е. я хотел бы что б при ошибке продолжалось выполнение цикла.
Вариант конечн вообще не нравится но побывал через goto, но Делфи ругаеца на то что не может перейти с блока Except в Try.(

Может кто плиз подсказать как при ошибке пропустить ее и продолжить выполнение цикла, но и сделать запись об ошибке в Memo.
Заранее спс.
PM MAIL   Вверх
Данкинг
Дата 9.10.2011, 18:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



А если continue в код обработки ошибки вставить - не поможет?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Chydik
Дата 9.10.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 7.1.2007

Репутация: нет
Всего: нет



Не Continue не поможет первое что думал но опять же except находица вне цикала ж) Проблемму уже решил просто сохраняю текущую позицию цикла в переменную и перезапускаю проседуру с текущей позиции.)
PM MAIL   Вверх
Keeper89
Дата 9.10.2011, 20:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 6
Всего: 58



Логика какая-то неправильная. Либо надо локально предусмотреть исправление ошибки, либо сделать внутренний try..except.


--------------------
PM MAIL WWW   Вверх
Chydik
Дата 10.10.2011, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 7.1.2007

Репутация: нет
Всего: нет



Да тупанул хоть и работает но согласен не совсем логично прост try.. except неправильно расставил по сути кидаю его внутри цикла и все должно пахать с continue спс.=)
PM MAIL   Вверх
bems
Дата 10.10.2011, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: нет
Всего: 88



Цитата(Chydik @  10.10.2011,  01:20 Найти цитируемый пост)
кидаю его внутри цикла и все должно пахать с continue 
без него



--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.