Στις 27/9/2013 1:43 μμ, ο/η Dave Angel έγραψε:
Στις 27/9/2013 1:55 πμ, ο/η Dave Angel έγραψε:
Simply assign the default values BEFORE the try block, and use pass as
the except block.

That still doesn't get around the inadvisability of putting those 3
lines in the try block.

You still haven't dealt with the gt assignment and its possible
exception.
Yes gi must be removed form within the try block because iam tesign it
for failure.
Then why don't you do it below?
I'am not sure what you mean though when you say:
Simply assign the default values BEFORE the try block, and use pass as
the except block.
Can you please make it more clear for me?

This is my code as i have it at the moment:

ipval = ( os.environ.get('HTTP_CF_CONNECTING_IP') or
os.environ.get('REMOTE_ADDR', "Cannot Resolve") )
try:
        gi = pygeoip.GeoIP('/usr/local/share/GeoIPCity.dat')
        city = gi.time_zone_by_addr( ipval )
        host = socket.gethostbyaddr( ipval ) [0]
except socket.gaierror as e:
        city = "Άγνωστη Πόλη"
        host = "Άγνωστη Προέλευση"

ipval = ( os.environ.get('HTTP_CF_CONNECTING_IP') or
os.environ.get('REMOTE_ADDR', "Cannot Resolve") )
city = "Άγνωστη Πόλη"
host = "Άγνωστη Προέλευση"
try:
        city = gi.time_zone_by_addr( ipval )
        host = socket.gethostbyaddr( ipval ) [0]
except socket.gaierror as e:
        pass

Thanks for taking the time to expain this:

In the exact above solution of yours opposed to the top of mines is that you code has the benefit of actually identifying the variable that failed to have been assigned a value while in my code no matter what variable failes in the try block i assign string to both 'city' and 'host' hence i dont really know which one of them is failing?

Di i understood it correctly?
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to