1. 'except' will obey the first match:
class DError(Exception):
pass
class XError(DError):
pass
class YError(DError):
pass
try:
raise XError
except YError:
print "Y"
except XError:
print "X"
except DError:
print "D"
Output: X
If:
try:
raise XError
except DError:
print "D"
except YError:
print "Y"
except XError:
print "X"
Output: D