Могу ли я объявить функцию в php что вызывает исключение? Например:
public function read($b, $off, $len) throws IOException
Могу ли я объявить функцию в php что вызывает исключение? Например:
public function read($b, $off, $len) throws IOException
Вы можете выкинуть новое исключение из тела функции. Все это описано здесь
Пример:
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
else return 1/$x;
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
Вы можете использовать @throws в комментарии PHPDoc, и среда IDE распознает эту функцию как исключение при просмотре документа, однако, в отличие от Java, это не заставит вас реализовать блок catch {} catch. Возможно, будущие версии IDE (я использую InteliJ 11) будут отмечать те места, где ожидается попытка {} catch, такая же, как и со типами JavaScript, отмеченными doc (например, String)) при распознавании несогласованности.
Короче говоря, использование Doclet, например, при кодировании со скриптовыми языками (PHP, JavaScript..), является дополнительным инструментом для более безопасного программирования в случае небезопасных и не скомпилированных языков.
вот так:
enter code here
/**
* Handle 'get' operations
* @abstract
* @param int $status reference for setting the response status
* @param String $body reference for setting the response data
* @return mixed
* @throws Exception if operation fail
*/
function get(&$status, &$body) {
}
Список исключений, которые входят в SPL: Исключения SPL.
Если вы хотите создать свое собственное исключение:
На странице Исключения PHP:
Заброшенный объект должен быть экземпляром класса исключений или подкласса Exception. Попытка бросить объект, который не приведет к ошибке Fatal Fatal.
Итак, да, вы можете создать свои собственные исключения. Просто немного чтения поможет вам достичь того, чего вы хотите.