On Thursday 12 August 2010, it occurred to wheres pythonmonks to exclaim: > try: > f = n / d > except: > f = float("nan")
A catch-all except clause. Never a good idea. It's not as bad in this case, as there is only one expression, but there are still a couple of other exceptions that have a chance of occurring here: KeyboardInterrupt and SystemExit. So: try: f = n / d except ZeroDivisionError: f = float('nan') > f = n / d except float("nan"); So this syntax really isn't adequate for real use: catch-all except clauses are frowned upon, and rightfully so. Besides, more often than not, you want to have a finally clause around when you're dealing with exceptions. > (Obviously, I am thinking about more complicated functions than "n/d" > -- but this works as an example.) The more complex the function is, the more likely it is to raise an exception you can't handle that easily. -- http://mail.python.org/mailman/listinfo/python-list