2010-10-18 54 views
4

我是一个强大的Python程序员,但不是那里谈到PHP。我需要尝试一些东西,如果不能解决问题,请做其他事情。什么是PHP的等效Python的尝试:...除了:


这是它会是什么样子在Python:

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

会变成这样在PHP中呢?

回答

4
try { 

    // do stuff ... 

} catch (Exception $e) { 

    print($e->getMessage()); 

} 

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

+0

这就是我所需要的,谢谢。我可以在大约8或9分钟后接受这个答案。 – 2010-10-18 02:41:18

+0

@Zachary它怎么样了? – Mizipzor 2010-10-18 09:02:11

+0

@ mizipzor,它工作得很好!对不起,我还没有接受它,忘了昨天晚上。 – 2010-10-18 14:57:20

0

PHP 5有exception model

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

PHP本身不支持像Python那样的错误捕获,除非您重写默认行为并且set your own error handler。 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(); 
} 
1

您可以处理PHP错误,如他们有例外通过set_error_handler

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

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

+0

+1对于其他答案错过的有用点。 – Spudley 2010-10-18 09:03:52