On 2014-01-04 15:52, Steven D'Aprano wrote:
Oh great. An exception was raised. What sort of exception? What error
message did it have? Why did it happen? Nobody knows, because you throw
it away.
Never, never, never do this. If you don't understand an exception, you
have no business covering it up and hiding that it took place. Never
use
a bare try...except, always catch the *smallest* number of specific
exception types that make sense. Better is to avoid catching exceptions
at all: an exception (usually) means something has gone wrong. You
should aim to fix the problem *before* it blows up, not after.
I'm reminded of a quote:
"I find it amusing when novice programmers believe their main job is
preventing programs from crashing. ... More experienced programmers
realize that correct code is great, code that crashes could use
improvement, but incorrect code that doesn't crash is a horrible
nightmare." -- Chris Smith
Your code is incorrect, it does the wrong thing, but it doesn't crash,
it just covers up the fact that an exception occured.
The output I get on an Ubuntu 12.4LTS system is as follows:
alex@x301:~/Python/Parse$ ./IP_info.py3
Exception raised.
IP address is 201.234.178.62:
Country: COLOMBIA (CO); City: b'Bogot\xe1'.
Lat/Long: 10.4/-75.2833
I would have thought that utf-8 could handle the 'a-acute'.
Of course it can:
py> 'Bogotá'.encode('utf-8')
I'm interested in knowing how you were able to enter the above line
(assuming you have a key board similar to mine.)
b'Bogot\xc3\xa1'
py> b'Bogot\xc3\xa1'.decode('utf-8')
'Bogotá'
But you don't have UTF-8. You have something else, and trying to decode
it using UTF-8 fails.
py> b'Bogot\xe1'.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 5:
unexpected end of data
More to follow...
I very much agree with your remarks.
In a pathetic attempt at self defence I just want to mention that what I
presented wasn't what I thought was a solution.
Rather it was an attempt to figure out what the problem was as a
preliminary step to fixing it.
With help from you and others, I was successful in doing this.
And for that help, I thank all list participants very much.
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor