if you want to use real Exception-based control of your script flow, why not use both then?
CODE
import maya.OpenMaya as OpenMaya
try:
# your regular python code
print "doing ok"
print "still doing ok"
raise Exception("something got wrong")
print "this will not be executed"
except Exception,e:
OpenMaya.MGlobal.displayError(e)
else:
print "finished successfully"
Exception based execution flow can be much more complex than that (nesting try...finally, try..except for initializing/finalizing parts of code), but just nesting the whole script into "try... except" and catching the generic exception and the end might be just what you're looking after.