[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bad Code Snippet of the Day

On 2/18/2014 11:47 AM, Chris Angelico wrote:
> I call this "Russian Exception Roulette". It came about because of
> some discussions on python-ideas regarding the new PEP 463 and
> exception handling.
> try:
>      exc = getattr(__builtins__,random.choice(list(filter(lambda x:
> x.endswith("Error"),dir(__builtins__)))))
>      f()
> except exc:
>      print("You win!")
> Given a function f(), defined elsewhere, what will this do?

I am not sure what you are asking or what your point is. If f happens to 
raise the randomly selected exception, it prints 'You win!', otherwise 
it does nothing.

> Note that this was developed on Python 3.4, and some of the details
> may be different on other versions (especially 2.x).

Terry Jan Reedy