Prasad, Ramit wrote: > So I have a context manager used to catch errors > > def __exit__( self, exceptionClass, exception, tracebackObject ): > if isinstance( exception, self.exceptionClasses ): > #do something here > > Normally exception would be the exception instance, but for > AttributeError it seems to be a string instead.
I don't think so: >>> class A(object): ... def __enter__(self): return self ... def __exit__(self, *args): print args ... >>> with A() as a: ... a.x ... (<type 'exceptions.AttributeError'>, AttributeError("'A' object has no attribute 'x'",), <traceback object at 0x7f57b70f22d8>) Traceback (most recent call last): File "<stdin>", line 2, in <module> AttributeError: 'A' object has no attribute 'x' > 1) Why is AttributeError different than the other built-ins > in this respect? > 2) Are there other standard errors like this (I know > that SystemExit is different as well)? > 3) Taking into account that I want to include subclasses of > classes listed in self.exceptionClasses, Is there a better check I can > use? -- http://mail.python.org/mailman/listinfo/python-list