Barry Warsaw wrote: > >Unless this new proposal also includes changing the meaning of >> "except:" to "except Error".
> It's worth debating. OT1H, it's a semantic different for Python 2.x > (although +1 on the idea for Py3K). I was speaking of Py3K here, yes. > Going along with that, maybe the interpreter should do something > different when an Exception that's not an Error reaches the top > (e.g. not print a traceback if KeyboardInterrupt is seen -- > we usually just catch that, print "Interrupted" and exit). SystemExit is already special-cased, as far as I can tell. KeyboardInterrupt could be in fact be special cased as well (I saw many Python newbies -- but otherwise experienced -- being disgusted at first when they interrupt their code with CTRL+C: they expect the program to exit "almost silently"). >> Also, under this new proposal, we could even remove >> Exception from the builtins namespace in Py3k. It's almost >> always wrong to use it, and if you really really need it, it's >> spelled exceptions.Exception. > I'm not sure I'd go as far as hiding Exception, since I don't think the > penalty is that great and it makes it easier to document. The situation (in Py3k) I was thinking is when people see this code: except: # something and want to change it so to get a name to the exception object. I *think* many could get confused and write: except Exception, e: # something which changes the meaning. It "sounds" correct, but it's wrong. Of course, it's easy to argue that "Exception" is just that, and people actually meant "Error". In a way, the current PEP352 is superior here because it makes harder to do the "bad" thing by giving it a complex name (BaseException). Giovanni Bajo _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com