I have to jump in on this one.  This is actually quite a classic Python design.  calling 'raise' without any argument *inside an except block* simply re-raises the error caught by the except.  This is a pretty standard approach to logging some response to an exception while not preventing the exception from bubbling upwards.

That being said, catching `Exception` on line 13 *is* a problem.  This is called a *bare except* and the problem is that since `Exception` is the base class for **all** python exceptions, this will catch anything at all that goes wrong.  You are actually trying to validate that the file you asked for exists.  What is the specific Python exception that covers this?  Use that exception rather than the overly generic `Exception`.