|
 |
Путь: >
Общие вопросы
Общие вопросы
Автор: - 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.
|
|