什么是PHP相当于Python的尝试:...除外:

时间:2010-10-18 02:34:51

标签: php python exception try-catch

我是一名优秀的Python程序员,但在PHP方面并不完全。我需要尝试一些东西,如果不能解决问题,那就做点别的了。


这就是Python中的样子:

try:
      print "stuf"
except:
      print "something else"

这在PHP中会是什么?

6 个答案:

答案 0 :(得分:7)

http://php.net/manual/en/language.exceptions.php

try {
    print 'stuff';
} catch (Exception $e) {
    var_dump($e);
}

注意:这仅适用于例外,而不适用于错误。

请参阅http://www.php.net/manual/en/function.set-error-handler.php

答案 1 :(得分:5)

try {

    // do stuff ...

} catch (Exception $e) {

    print($e->getMessage());

}

请参阅http://php.net/manual/en/language.exceptions.php

答案 2 :(得分:1)

除非你覆盖默认行为set your own error handler,否则PHP本身不像Python那样支持错误捕获。 PHP的try - catch最近才被添加到版本5中的语言中,它只能捕获您明确throw的例外。

基本上,PHP区分错误和异常。错误没有模块化,并且像Python一样可供用户使用。我认为这与PHP以collection of dynamic web scripts开始,随着时间的推移而增长并获得更多功能的事实有关,并且最近才提供改进的OOP支持(即版本5);而Python从根本上支持OOP和其他元功能。和异常处理from the beginning

以下是一个示例用法(同样,throw是必要的,否则什么都不会被抓住):

function oops($a)
{
    if (!$a) {
        throw new Exception('empty variable');
    }
    return "oops, $a";
}

try {
    print oops($b);
} catch (Exception $e) {
    print "Error occurred: " . $e->getMessage();
}

答案 3 :(得分:1)

您可以使用set_error_handler

处理PHP错误,例如异常

在此错误处理函数中,您可以根据错误级别抛出各种异常。

通过这样做,您可以以常见的方式处理任何错误(包括编程错误)。

答案 4 :(得分:0)

PHP 5有exception model

try {
    print 'stuff';
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

答案 5 :(得分:0)

假设您正在尝试捕获异常,请查看http://php.net/manual/en/language.exceptions.php

您可以尝试类似

的内容
try {
echo "Stuff";
} catch (Exception $e) {
echo "Something Else";
}