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

Форум PHP

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

 

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

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

тема: Грамотная работа с исключениями
 
 автор: Temnovit   (06.04.2009 в 18:05)   письмо автору
 
 

Здравствуйте!

Вопрос идеологический - как правильнее применять исключения, чтобы в итоге было легче ориентироваться в написаном коде? Есть ли какие-то правила хорошего тона в этом отношении? Стоит ли выбрасывать исключения внутри функций и методов, или это стоит делать в исполняемом коде?

Вариант 1

<?
function dv($a$b)
{
 if (
$b==0)
   throw new 
Exception('Деление на ноль!');
 return 
$a $b;
}

try
{
  
dv(5,0);
}
chatch()
{
 
//...
}
?>


Вариант 2

<?
function dv($a$b)
{
 if (
$b==0)
  return 
false;
 return 
$a $b;
}

try
{
  if (!
dv(5,0))
     throw new 
Exception('Деление на ноль!');
}
chatch()
{
 
//...
}
?>


Как лучше?

  Ответить  
 
 автор: AcidTrash   (06.04.2009 в 21:43)   письмо автору
 
   для: Temnovit   (06.04.2009 в 18:05)
 

chatch()
Ни первый, ни второй пример работать не будет.

  Ответить  
 
 автор: Temnovit   (08.04.2009 в 16:54)   письмо автору
 
   для: AcidTrash   (06.04.2009 в 21:43)
 

Очепятался. Смысл вопроса то не в этом.

  Ответить  
 
 автор: cheops   (12.04.2009 в 16:33)   письмо автору
 
   для: Temnovit   (06.04.2009 в 18:05)
 

Вариант 1 более предпочтителен - если понадобится изменить порядок вызова исключения или вызвать другое исключение - будет достаточно изменить код в одном месте, во втором варианте - придется перелопачивать весь код.

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

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