Ricardo Aráoz wrote: > Kent Johnson wrote: >> from contextlib import nested >> with nested(open_file(self.direcciones), open_file(self.excluidas)) >> as (fIncl, fExcl): >> > > Nice! How would you add exception reporting to this?
I don't have a good answer to that, that's why I didn't propose it originally. You could use try: with nested(open_file(self.direcciones), open_file(self.excluidas)) as (fIncl, fExcl): try: do_something_with(fIncl, fExcl) except: # handle exceptions from do_something_with() except: pass # We already logged exceptions from the open_file calls You could omit the inner try/except if you are sure that do_something_with() won't raise an exception, but it's pretty hard to be sure of that unless it wraps its contents already. Looking at PEP 343, it's pretty clear ;-) that exceptions raised by open_file() will just be passed out of the with statement. Look at the pseudo-code in the section "Specification: The 'with' Statement". The exception is raised in the very first line - mgr = (EXPR) - when open_file() is called. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor