sachin
sachin

Reputation: 133

nested try except in python

Try: 
     #some statement 
    Try: 
         #some statement 
    Except: 
         #statement1 
        Raise exception()
       #statement2 
Except: #some statement

Can I pass the control like the above code in python., will the inner except pass the control to the outer except and will the #statement2 be executed?

Upvotes: 1

Views: 7899

Answers (1)

Reut Sharabani
Reut Sharabani

Reputation: 31339

This code will answer your question:

#!/usr/bin/env python
import sys
try:
    try:
        raise Exception("first exception")
    except Exception as e:
        print e.message
        raise Exception("second exception")
        print "second statement" # never printed - 'dead code'
except Exception as e:
    print e.message

Both except blocks are executed but the statement after raising the second exception is not.

Generally you should know that once an exception is raised, nothing executes until it is caught by an except block that is relevant to this exception or any superclass of it.

Upvotes: 4

Related Questions