::: PHP.com.ua - учимся вместе. ::: ::: PHP.com.ua - учимся вместе. :::



 
   - Вакансия PHP-программист, Днепропетровск...
  - Проблема с передачей переменной в PHP ск...
  - Как хранить конфигурацию cms'ки?
  - Проблема с сортировкой массива
  - коллизии md5
  - Странный глюк функции date
  - Скроллинг в iframe


Главная
Новости
Статьи
Шпаргалки
Файлы
О проекте
Форум
Футболки


FREEhost.com.ua - купил хостинг 10 у.е. на Begun в подарок.

iName.com.ua - регистрация доменных имен и хороший хостинг.

Библиотека программиста - нужный вам исходник или документация по необходимому для вас языку программирования.

Designclub - Клуб дизайнеров Украины.

Регистрация доменов
Хостинг

 HowtoForge.ORG.UA - Это первый Украинский ресурс развития open source программного обеспечения


Путь: Статьи > Общие вопросы

Общие вопросы

Автор: - Jok
Дата публикации - 01.08.2005
Просмотров: - 4057

Exception и его использование


[p]Что такое Exception[/p]
Exception это очень удобный встроенный класс в PHP5 для ловли и обработки ошибок.

[b]Пример:[/b]
Низкие уровни пакета PEAR не знают какая произошла ошибка при соединении с базой - они только выбрасывают Exception - а высокий уровень уже решает что делать дальше.

[p]Как работать ?[/p]
Для того чтобы работать с Exception классом нужно заключать код в блоки try-catch
[p]Например:[/p]
[php]
try
{
if(!file_exists($file_path)) throw new Exception('File does not exists');
}
catch(Exception $e)
{
echo $e->getMessage;
echo 'Creating...';
$this->createFile($file_path)
}[

/php]

Получается всегда должен быть блок try и один или несколько блоков catch

[p]Преимущества использования[/p]
[li] Преимущество метода с Exception для обработки ошибок в том что он оставляет Вам решать что делать с ошибкой которая произошла - то ли выдать ее на экран то ли выполнить код еще и раз или выполнить другой код.[/li]

[li]Еще одно преимущество что не нужно проверять ошибку сразу после выполненной команды.[/li]
Например:
[php]
try {
    $person->setName('John Doe');
    $person->setAddress('Something St. 12');
    $person->setbirthDate('10-10-1900');
    $person->store();
} catch (Exception e) {
    throw new DataPopulationException(
        'Unable to fill data for person ' . $person->getId(), e
    );
}[

/php]

[p]А что лучше - свой класс обработки ошибок или Exception ?[/p]А это смотря для кого. Если у вас многоуровневая система которая взаимодействует на интерфейсах и тд тд (хотя если у вас это есть - вам это читать не надо :) ) то вам нужно Exception. А если у вас простенький скриптик то вам просто не нужно использовать Exception так как он не оправдает себя...

Поэтому используйте с умом.

P.S. не судите строго - первая статья в жизни..

Использовано при написании:
url=http://wiki.ciaweb.net/yawiki/index.php?area=PEAR_Dev&page=RfcExceptionUse]http://wiki.ciaweb.net/yawiki/index.php?area=PEAR_Dev&page=RfcExceptionUse/url]



Обсудить в ФОРУМе - комментариев ()


Путь: Статьи > Общие вопросы

Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Контакты Design by webFaction Ukrainian PHP Group 2004-2005