• [^] # Re: Mauvais code, lachez-vous

    Posté par . En réponse au journal Mauvais code, lachez-vous. Évalué à 0.

    Ca ce pratique dans certains langages comme Python. C'est pratique je trouve avec des itérateurs, lorsqu'on arrive à la fin de l'itérateur, on lance une exception qui est propagée pour terminer le traitement sur cet itérateur.

    Tiré de Python in a nutshell:
    Python also uses exceptions to indicate some special situations that are not errors and are not even abnormal occurrences. For example,..., an iterator's next method raises the exception StopIteration when iterator has no more items. This is not an error, and it is not even an anormalous condition, since most iterators run out of items eventually."

    _temp_iter = iter(c)
    while True:
    try: x = _temp_iter.next()
    except StopIteration: break
    statement(s)


    Une exception ne sert pas qu'à gérer les erreurs, mais à gérer ce qui sort du traitement courant, elle peut faire partie intégrante du programme et je ne trouve pas cela forcément "crade". Le gros problème c'est que de lever une exception est souvent la solution la moins efficace (instanciation et propagation de l'exception prennent beaucoup de ressources).