Adam W. wrote: > I am trying to handle a Unicode error but its acting like the except > clause is not even there. Here is the offending code: > > def characters(self, string): > if self.initem: > try: > self.data.append(string.encode()) > except: > self.data.append('No habla la Unicode') > > And the exception: > > File "C:\Users\Adam\Desktop\XMLWorkspace.py", line 65, in characters > try: > UnicodeEncodeError: 'ascii' codec can't encode character u'\u2026' in > position 83: ordinal not in range(128) > > Its got to be something really dumb I'm missing, this make no sence.
Seems that others have addressed you specific problem so I wanted to take this opportunity to save you from hours of frustration in the future (trust me on this one). It is almost NEVER a good idea to use a blank except: clause in your code. The problem is that it catches ALL exceptions, not just the one you are trying to catch. It is much better to determine the exception you are trying to catch here. Example: try: self.data.append(string.encode()) except UnicodeEncodeError: self.data.append('No habla la Unicode') You can spend a lot of time trying to figure out what is going on when your blank except catches all the exceptions. This lets the other exceptions do what they should do. Hope this helps. Larry Bates -- http://mail.python.org/mailman/listinfo/python-list