При закрытии подписчики были переданы в рассылку "Заметки Дизайнера" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
|
Содержание Вниманию читателей!Отдельные выпуски рассылки в той или иной мере взаимосвязаны; особенно, это относится к материалам практических занятий. С предыдущими выпусками Вы можете ознакомиться:
# # # Вы также можете подписаться на рассылку "PHP 5 для начинающих". PHP 6 уже в разработке!Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки. http://pterodactyl.l2p.net/e107/ [опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)] |
PHP 5: Новые возможности.The PterodactylCopyright 2006 Pterodactyl's School Copyright 2006 Pterodactyl's School. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". 05.05.2006
Аннотация Исключительные ситуации и их обработка. Содержание PHP 5, подобно многим современным языкам программирования, поддерживает обработку исключительных ситуаций (exceptions) в рамках популярной парадигмы Встроенный класс ReflectionClass::export('Exception');
Class [ <internal> class Exception ] {
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [6] {
Property [ <default> protected $message ]
Property [ <default> private $string ]
Property [ <default> protected $code ]
Property [ <default> protected $file ]
Property [ <default> protected $line ]
Property [ <default> private $trace ]
}
- Methods [9] {
Method [ <internal> final private method __clone ] {
}
Method [ <internal, ctor> public method __construct ] {
- Parameters [2] {
Parameter #0 [ <required> $message ]
Parameter #1 [ <required> $code ]
}
}
Method [ <internal> final public method getMessage ] {
}
Method [ <internal> final public method getCode ] {
}
Method [ <internal> final public method getFile ] {
}
Method [ <internal> final public method getLine ] {
}
Method [ <internal> final public method getTrace ] {
}
Method [ <internal> final public method getTraceAsString ] {
}
Method [ <internal> public method __toString ] {
}
}
}
Исключительную ситуацию, прежде чем она подвергнется обработке, следует создать (throw[1]). throw new Exception; Fatal error: Uncaught exception 'Exception' throw new Exception('Oops!');
Fatal error: Uncaught exception 'Exception' with message 'Oops!' К сожалению, большинство встроенных функций не генерируют исключительные ситуации с целью обеспечения обратной совместимости с PHP 4. Это ограничивает возможность использования обработки исключительных ситуаций во многих случаях, где она традиционно применяется: при открытии файлов, работе с базами данных, установкой удаленных соединений и т. п. Впрочем, некоторые новые расширения, появившиеся в пятой версии, все же генерируют исключительные ситуации (например, функции
Тем не менее, это не мешает в полной мере реализовывать механизм исключительных ситуаций в собственных разрабатываемых приложениях. Структура
<?php
try {
print 'It is Ok.';
throw new Exception('Oops!');
print 'It is wrong!';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage();
}
?>
It is Ok.
Caught exception: Oops!
PHP 5 позволяет разработчику установить собственный обработчик неперехваченных исключительных ситуаций при помощи функции
<?php
function eHandler ($e) {
echo "Uncaught exception: " , $exception->getMessage();
}
set_exception_handler('eHandler');
throw new Exception('Oops!');
?>
Uncaught exception: Oops! Использование механизма исключительных ситуаций значительно облегчает разработку приложений, так как в потенциально богатых ошибками участках кода (например, при установлении соединения с удаленным сервером и последующем обмене данными) вместо множества проверок Другое важное преимущество - возможность продолжения исполнения скрипта после соответствующей обработки возникшей исключительной ситуации (устранения последствий ошибки).
|
||||||
| В избранное | ||