我可以在php中声明一个函数 这抛出了一个例外? 例如:

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

有帮助吗?

解决方案

我误读了问题,请参阅下面的答案来自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';
?>
.

其他提示

您可以在PHPDOC评论中使用@Throws,并且IDE将在查看DOC时将此功能识别为抛出异常,但是与Java不同,它不会强制执行TRY {} CATCH块。也许IDE的未来版本(我使用的Intelij 11)将标记尝试{}捕获的位置,与识别不一致时的Doc(例如String})已经与之标记的JavaScript类型。

简而言之,使用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例外页面:

抛出对象必须是异常类或例外的子类。试图抛出一个不会导致PHP致命错误的对象。

所以是的,可以创建自己的异常。只需一点阅读就会帮助您实现您想要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top