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

Reply via email to