![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| SqueeZe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.10.2007 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Собственно, что какой критерий должен указывать на то, что является критической ошибкой и должно вызывать исключение.
Для примера приведу код недавно написанного класса Collection. Я установил вызовы исключений в местах, где мне кажется разумным. Но. Например тот же метод clear(). Ведь правильно, что не должно возникать исключение, если массив пуст?
|
|||
|
||||
| onsql |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 3.12.2007 Репутация: нет Всего: 3 |
Ну мне кажется разумным такое правило: исключение должно возбуждаться когда твой код сталкивается с непредусмотренной алгоритмом ситуацией либо не способен самостоятельно её разрешить. Несколько расплывчато, я понимаю...
Ну вот например метод clear. Если список элементов уже пуст, то нет никакого смысла бросать исключения. Назначение метода - очистить коллекцию. Постусловие - список элементов пуст. В случае пустого списка, метод прекрасно справляется с задачей, ничего не делая. Другой коленкор - getItemAt. Что должен возвращать твой код, если нет элемента с заданным индексом? Аварийно останавливать программу? Писать об ошибках в лог? Возвращать специальное значение, сигнализирующее об ошибке? В любом случае, налицо ситуация, обработка которой лежит вне ответственности класса-коллекции. Исключение в данном случае - стандартный механизм сигнализации о нештатном завершении операции в ООП. ИМХО конечно |
|||
|
||||
| FractalizeR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 2 Всего: 4 |
Согласен с onsql. Критерием можно считать следующее: возникла ситуация, при которой исполнямый в данный момент код не знает, что ему делать. Очистка уже пустой коллекции, конечно, под этот критерий не подходит. Это сообщение отредактировал(а) FractalizeR - 12.1.2008, 17:39 -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
| SqueeZe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.10.2007 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Спасибо за ответы.
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |