On Friday, October 12, 2012 12:29:02 PM UTC-4, Dave Angel wrote:
> On 10/12/2012 11:36 AM, Wanderer wrote:
> 
> > I'm trying to write some code that will load one of three dll depending on 
> > the one available. I've tried the code below, but it doesn't work. The try 
> > except doesn't catch the exception. Is there a way to do this?
> 
> >
> 
> >         try:
> 
> >             self.dll = windll.pvcam64
> 
> >         except:
> 
> >             print "No pvcam64"
> 
> >             try:
> 
> >                 self.dll = windll.pvcam32
> 
> >             except:
> 
> >                 print "No pvcam32"
> 
> >                 try:
> 
> >                     self.dll = windll.pvcam
> 
> >                 except:
> 
> >                     print "No pvcam"
> 
> >                     return
> 
> >                 else:
> 
> >                     print "installed pvcam"
> 
> >             else:
> 
> >                 print "installed pvcam32"
> 
> >         else:
> 
> >             print "installed pvcam64"
> 
> >
> 
> 
> 
> I can't help you find the dll's, because I don't run Windows.  But I
> 
> could help you write a clearer question:
> 
> 
> 
> "doesn't work" is thoroughly useless for describing errors.  If you're
> 
> getting an exception, show us the full traceback.  That will show which
> 
> statement got the exception that wasn't caught.  Next question is which
> 
> of the dlls is missing.  Are you getting an exception because it's
> 
> missing or because of something more fundamental, like nesting exception
> 
> handlers?
> 
> 
> 
> Using bare excepts is almost never a good idea.  If it "works" you get
> 
> no clues what went wrong.  For example, a typo in source code can
> 
> trigger a bare exception, as can a user typing Ctrl-C.   So when you're
> 
> using bare excepts, you have robbed the user of any way to terminate the
> 
> program.
> 
> 
> 
> If I were you, I'd be writing a loop so there's only one try block.  Too
> 
> much duplicated code in the way you're doing it.
> 
> 
> 
> 
> 
> 
> 
> -- 
> 
> 
> 
> DaveA

Sorry. It was a WindowsError, but the code I posted now works for me and I 
can't reproduce the problem. I'll be more diligent in the future.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to