Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: IF или Exception
 
 автор: Zigmar   (31.10.2011 в 20:02)   письмо автору
 
 

Всем привет. Помогите разобраться, зачем нужны исключения если можно осуществить любую проверку с помощью IF? В чём вообще их принципиальное отличие, можно ли обойтись без исключений?

  Ответить  
 
 автор: cheops   (01.11.2011 в 14:52)   письмо автору
 
   для: Zigmar   (31.10.2011 в 20:02)
 

Иногда требуется очень много IF, за ними не видно логики программы, это вызывает ошибки, да и просто больше места занимает... более того, в разных частях программы могут быть схожие ситуации, а обработчик у них одинаковый, если он изменяется - нужно править программу во многих местах, что приводит к ошибкам.
Кроме того, реакция в разных случаях может быть разная... например, происходит исключительная ситуация в классе, как на её реагировать? Поместить сообщение об ошибке в переменную? А её точно будут читать? Учитывая, что ООП подразумевает инкапсуляцию, т.е. поощряет не анализировать логику класса. Проще сгенерировать исключение, а внешний программист сам решит, какой способ уведомления будет наиболее подходящим в той или иной ситуации.

if - предназначен для программ до 1000 строк
исключения - больше 1000 строк, главным образом объектно-ориентированных, когда вы не знаете заранее, в каком окружении будет работать ваш класс.

  Ответить  
 
 автор: Красная_шляпа   (01.11.2011 в 19:14)   письмо автору
 
   для: Zigmar   (31.10.2011 в 20:02)
 

class Xynta {
public function test() { throw new Exception("XYNTA!!!"); }
}

$xynta = new Xynta;
try {
$xynta->test();
}
catch (Exception $e) {
die($e);
}


можно. зачем и для чего использовать использовать это решать тебе лично. зачем они вообще нужны Zend всё из этого выкидаша пытается сделать яву.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования