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