On Sat, Nov 6, 2010 at 11:22 AM, Jon Dufresne <jon.dufre...@gmail.com> wrote: > Hi, > > My python program has an extension system where the extension can have > a optional magic python modules. Meaning if the extension module > exists, the program will use it and if not, it will continue without > the module. So my program tests if a module exists, if so use it, > otherwise continue. This is how I originally did this (pseudo code): > > > try: > import extension_magic_module > except ImportError: > pass > else: > handle_extension_magic_module() > > > However, if the the extension module exists but throws an ImportError, > due to a bug in the extension this idiom will mask the error and I > will never see it. Later on in the program I will get unexpected > behavior because the module never successfully imported. I want the > program to fail if the extension module fails to import, but continue > if the module doesn't exist. Is there a correct way to handle this?
Here's what I came up with: try: import extension_magic_module except ImportError as err: if err.message != "No module named extension_magic_module": raise err else: handle_extension_magic_module() Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list