Всем Ре. Вопрос заключается в том как при ошибке заполнить ее в лог и продолжить выполнение. Для наглядности код.
| Код | 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. Заранее спс. |