Harishankar wrote:
As I said before, the way exceptions are caught seem to me to be the most
confusing bit. Non-atomic operations always worry me. What if my function
which is wrapped inside a try block has two different statements that
raised the same exception but for different reasons? With error handling
I could probably handle it right below the statement which was called and
thus reduce the problem???
Exception actually are the solution as you can give an unlimitted
quantity of information:
def myfunction(self):
error = myfuncException('a meaninful message')
# error 1
error.blame = whateverobjectresponsibleoftheerror
# error 2
error.blame = anotherobject_anothercause
raise error
try:
myfunction()
except myfuncException, exception:
cause = exception.blame
# you can inspect the 'cause' for specific handling
In a more general and simple manner, you can tune the error feedback of
exceptions by changing the message of the exception. Using different
exception classes is also an obvious way to do it.
But my point was that you can also set attributes to the exception
you're raising with reference to almost anything at the time the
exception occurs. And that is a very cool way to give precise feedback
to exception handlers.
JM
--
http://mail.python.org/mailman/listinfo/python-list