我可以声明 php 函数引发异常吗?

2022-08-30 11:43:24

我可以在php中声明一个引发异常的函数吗?例如:

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

答案 1

您可以在 PHPDoc 注释中使用@throws,在查看文档时,IDE 会将此函数识别为引发异常,但与 Java 不同,它不会强制您实现 Try{}catch 块。也许未来版本的IDE(我使用的是InteliJ 11)将标记那些预期尝试{}catch的地方,就像在识别不一致时已经对由doc标记的JavaScript类型(例如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


答案 2

我误读了这个问题,请参阅Gilad的以下答案(应该接受)。

上一个答案:

您可以从函数体中引发新的异常。这里都描述了

例:

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

推荐