подтвердить поведение исключений и последствий для объектов - PullRequest
1 голос
/ 02 марта 2010

Я просто хочу подтвердить свое понимание исключений и того, как они влияют на их объекты.

Если я выбрасываю исключение, которое останавливает обработку метода, правильно? Так что нет смысла делать

if ( some_check() ) {
    throw new Exception(...);
} else {
    ...
}

Я должен просто сделать это

if ( some_check() ) {
    throw new Exception(...);
} 

rest_of_code();

Также, если я сгенерирую исключение в __construct, это уничтожит объект, верно? Поэтому я должен сделать все свои исключения аргументов для проверки аргументов сразу - нет смысла строить объект, если он все равно взорвется в исключительной ситуации проверки ввода.

Ответы [ 2 ]

2 голосов
/ 02 марта 2010

Да, вы правильно поняли: D У вас есть голос от меня: D

Несмотря на это, у вас может быть два теста на одни данные: D

if( checkOne (a)){
   throw new Exception(...);
}
else (checkTwo(a)){
...
0 голосов
/ 02 марта 2010

Нормально сгенерировать исключение в конструкторе, у вас нет другого выбора. Также вы не упомянули объекты, которые содержат какой-то ресурс памяти, убедитесь, что вы используете оператор using или try / catch / finally и освободите память за исключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...