2010-10-18 12 views
4

Je suis un programmeur Python fort, mais pas tout à fait là quand il s'agit de PHP. J'ai besoin d'essayer quelque chose, et si ça ne marche pas, fais autre chose.Quel est l'équivalent PHP de Python Try: ... Excepté:


C'est ce qu'il ressemblerait en Python:

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

Que serait-ce en PHP?

Répondre

4
try { 

    // do stuff ... 

} catch (Exception $e) { 

    print($e->getMessage()); 

} 

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

+0

C'était ce dont j'avais besoin, merci. Je vais accepter cette réponse quand je peux dans environ 8 ou 9 minutes. –

+0

@Zachary comment ça s'est passé? – Mizipzor

+0

@mizipzor, ça a bien marché! @ts, désolé je ne l'avais pas encore accepté, j'ai oublié la nuit dernière. –

0

PHP 5 a la exception model:

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

PHP ne prend pas en charge nativement l'erreur de capture comme le fait Python, sauf si vous remplacez le comportement par défaut et set your own error handler. PHP try - catch a été récemment ajouté à la langue dans la version 5, et il peut seulement attraper des exceptions que vous avez explicitement throw.

Donc, fondamentalement, PHP distingue les erreurs et les exceptions. Les erreurs n'ont pas été modularisées et mises à la disposition de l'utilisateur comme si elles étaient en Python. Je crois que cela est lié au fait que PHP a commencé comme un collection of dynamic web scripts, a grandi et a gagné plus de fonctionnalités au fil du temps, et seulement plus récemment offert un support amélioré de POO (c'est-à-dire, la version 5); alors que Python supporte fondamentalement la POO et d'autres méta-fonctionnalités. Et gestion des exceptions from the beginning.

Voici un exemple d'utilisation (encore une fois, un throw est nécessaire, ou bien rien ne sera pris):

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

Vous pouvez gérer les erreurs PHP comme ils étaient des exceptions en utilisant set_error_handler

Dans cette erreur fonction de gestionnaire, vous pouvez lancer diverses exceptions, selon le niveau d'erreur par exemple. En faisant cela, vous pouvez traiter n'importe quelle erreur (y compris les erreurs de programmation) d'une manière commune.

+0

+1 pour un point utile que les autres réponses ont manqué. – Spudley