2017-09-07 1 views
0

j'ai écritComment générer une erreur supplémentaire en Python et conserver la cause dans la trace de la pile?

try: 
    ... 
except Exception as e: 
    raise ValueError(e, "Was unable to extract date from filename '%s'" % filename) 

et maintenant, quand exception se produit dans le bloc try, je lâche des informations à ce sujet. J'empile trace imprimé Je vois seulement le numéro de ligne avec raise déclaration et aucune information sur l'endroit où e réelle s'est produite.

Comment réparer?

+1

Dans python3,' raise' automatiquement –

+0

Hmm, il me semble qu'il n'a pas .... – Dims

+0

Voici ce que vous obtenez: 'Exception: Test .... Lors de la gestion de l'exception ci-dessus, une autre exception ValueError ... ' –

Répondre

1

utilisation raise exc from another_exc.

try: 
    ... 
except Exception as e: 
    raise ValueError("Was unable to extract date from filename '%s'" % filename) from e 

Ajout du from e fera en sorte qu'il ya deux tracebacks reliés par L'exception ci-dessus était la cause directe de l'exception suivante »