Подтвердить что ты не робот

Могу ли я объявить, что функция php вызывает исключение?

Могу ли я объявить функцию в php что вызывает исключение? Например:

public function read($b, $off, $len) throws IOException 
4b9b3361

Ответ 1

Вы можете выкинуть новое исключение из тела функции. Все это описано здесь

Пример:

<?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';
?>

Ответ 2

Вы можете использовать @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) {
}

enter image description here

Ответ 3

Список исключений, которые входят в SPL: Исключения SPL.

Если вы хотите создать свое собственное исключение:

На странице Исключения PHP:

Заброшенный объект должен быть экземпляром класса исключений или подкласса Exception. Попытка бросить объект, который не приведет к ошибке Fatal Fatal.

Итак, да, вы можете создать свои собственные исключения. Просто немного чтения поможет вам достичь того, чего вы хотите.