Пример кода №3
Участников: 3
Auslogics: работа и отзывы о работе :: Примеры тестовых работ :: Тестовые работы Delphi-программистов
Страница 1 из 1
Пример кода №3
- Код:
...
try
SRC.Canvas.Lock;
Buffer.Canvas.Lock;
...
Buffer.Canvas.Unlock;
SRC.Canvas.Unlock;
except
Result := False;
SRC.Canvas.Unlock;
Buffer.Canvas.Unlock;
end;
...
Данный код показывает незнание основных механизмов, предоставляемых языком программирования, и содержит две грубые ошибки при использовании методов блокировки ресурсов для доступа.
- Повторный вызов методов Unlock в блоке except лишний и ненужный, т.к. достаточно использовать конструкции try finally. Это позволяет избежать дублирования и сделать код более читабельным и логичным.
- Отсутствие операторов try finally между вызовами Lock и Unlock может привести к тому, что ресурс останется заблокированным или будет вызван Unlock на незаблокированном ресурсе.
- Вызов Unlock в блоке except может выполниться до того, как будет вызван Lock для этого ресурса.
Re: Пример кода №3
Судя по коду (хотя этого не видно), в начале функции Result := True. Это очень плохо. По умолчанию лучше предполагать худший вариант - ошибку.
SmartGuy- Сообщения : 5
Дата регистрации : 2015-11-20
Re: Пример кода №3
1. Данный пример, опять же, показывает ошибочное использование.
2. По коду не видно, какое значение принимает Result.
3. По коду не видно, что это за функция и значение True может быть ошибкой.
2. По коду не видно, какое значение принимает Result.
3. По коду не видно, что это за функция и значение True может быть ошибкой.
DELPHI team Auslogics- Сообщения : 11
Дата регистрации : 2015-11-21
Auslogics: работа и отзывы о работе :: Примеры тестовых работ :: Тестовые работы Delphi-программистов
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|