Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

С какой радости Borland в DB.pas написала такое?   Найти похожие ветки 

 
}|{yk ©   (2004-10-12 18:13) [0]

function TFields.FieldByName(const FieldName: string): TField;
begin
 Result := FindField(FieldName);
 if Result = nil then DatabaseErrorFmt(SFieldNotFound, [FieldName], DataSet);
end;


зачем мне получать ошибку, и потом  обрабатывать ее? Если я получу nil, и попытаюсь работать с ним, я и так получу AV. Зачем мне лишний try-except&


 
Плохиш ©   (2004-10-12 18:20) [1]

Потому что об этом в хелпе всё написано.
Если ты возмёшь словарь и переведёшь название функции на свой родной язык, то возможно ты приблизишься к Великой Истине.


 
Johnmen ©   (2004-10-12 18:23) [2]

Просто есть два подхода к таким вещам.
Они реализовали один из них. Т.е. они гарантируют, что вернут запрашиваемое. Если не будет ошибки...:)


 
}|{yk ©   (2004-10-12 18:23) [3]

Зачем мне получать Exception? Я хочу получить nil. Что возвратит FindWindow, если не найдет нужного окна?


 
icWasya ©   (2004-10-12 18:28) [4]

>..Я хочу получить nil...
Ну так и пользуйся FindField - в чём проблема?


 
}|{yk ©   (2004-10-12 18:42) [5]

Да проблема в том, что сам Borland там же пишет
function TFieldList.FieldByName(const Name: string): TField;
begin
 Result := TField(FindItem(Name, True));
end;
безо всяких возбуждений ошибок!


 
}|{yk ©   (2004-10-12 18:43) [6]

а в
function TFields.FieldByNumber(FieldNo: Integer): TField;
var
 I: Integer;
begin
 for I := 0 to FList.Count - 1 do
 begin
   Result := FList.Items[I];
   if Result.FieldNo = FieldNo then Exit;
 end;
 Result := nil;
end;

опять же Exception я не получу!


 
jack128 ©   (2004-10-12 19:10) [7]

Не понял в чем проблема?? Есть два метода, хочешь, чтобы было исключение - используй FieldByName, хочешь получить nil - FindField..

}|{yk ©   (12.10.04 18:13)
Если я получу nil, и попытаюсь работать с ним, я и так получу AV. Зачем мне лишний try-except


Где лишний try- except ?? Если ты обращешься к указателю на нил, значит у тя неправельно постоена логика приложения.


 
}|{yk ©   (2004-10-12 19:19) [8]

почему
function TFields.FieldByNumber(FieldNo: Integer): TField; не создает исключения, а
function TFields.FieldByName(const FieldName: string): TField;
создает?


 
Polevi ©   (2004-10-12 19:54) [9]

покачану


 
Anatoly Podgoretsky ©   (2004-10-13 11:26) [10]

}|{yk ©   (12.10.04 19:19) [8]
Потому что в первом случае сделано с генерацией исключения, а во втором случае нет.
Не нравится не используй или скажи свое фи Борланду. Каждую функцию надо использовать в соответствии со спецификаей а не вкусом конечного пользователя.


 
Reindeer Moss Eater ©   (2004-10-13 14:26) [11]

FieldByName и Exception
или
FindField и nil

что хочешь то и используй.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1098934368
Кто---то
2004-10-28 07:32
2004.11.14
Как просматривать gif-файлы ? Какой юнит нужен ?


14-1098561157
snif
2004-10-23 23:52
2004.11.14
Удаленный рабочий стол


14-1098697906
Миша Белкин
2004-10-25 13:51
2004.11.14
C# or Delphi and .Net прекрасный дует?


1-1098988804
Arnold
2004-10-28 22:40
2004.11.14
Вопрос по StringGrid


3-1097554515
Xmen
2004-10-12 08:15
2004.11.14
Delphi и Zeosdbo удаление





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