ConnectionError handling problem
cs at zip.com.au
Sat Sep 26 23:43:24 CEST 2015
On 26Sep2015 09:46, Gonzalo V <gvm2121 at gmail.com> wrote:
>i had the same problems and you have to tell to python what to do with the
Definitely. That's why we're encouraging him to handle specific exceptions.
>except *urllib.error.HTTPError* as e:
> if e.getcode()==504:
> disp = "SIN RESPUESTA DEL SERVIDOR" #(No answer from the
You're aware that the "pass" there does nothing? Perhaps you're considering
Normally when I write a specific clause like that it looks a bit like this:
except *urllib.error.HTTPError* as e:
warning("about 504 error...")
nombre = ''
This arranges that for _other_ HTTPErrors which I do not correctly handle that
the exception is reraised.
>greeting from Chile. Sorry my english.
Don't apologise. Thank you for working in a second language to accomodate us. I
apologise for my Spanish, which is nonexistent :-(
Cameron Simpson <cs at zip.com.au>
>2015-09-25 3:24 GMT-04:00 Cameron Simpson <cs at zip.com.au>:
>> On 24Sep2015 22:46, shiva upreti <katewinslet626 at gmail.com> wrote:
>>> On Friday, September 25, 2015 at 10:55:45 AM UTC+5:30, Cameron Simpson
>>>> On 24Sep2015 20:57, shiva upreti <katewinslet626 at gmail.com> wrote:
>>>> >Thank you Cameron.
>>>> >I think the problem with my code is that it just hangs without raising
>>>> any >exceptions. And as mentioned by Laura above that when I press CTRL+C,
>>>> it >just catches that exception and prints ConnectionError which is
>>>> definitely >a lie in this case as you mentioned.
>> Ok. You original code says:
>> r=requests.post(url, data=query_args)
>> print "Connection error"
>> and presumably we think your code is hanging inside the requests.post
>> call? You should probably try to verify that, because if it is elsewhere
>> you need to figure out where (lots of print statements is a first start on
>> I would open two terminals. Run your program until it hangs in one.
>> While it is hung, examine the network status. I'll presume you're on a
>> UNIX system of some kind, probably Linux? If not it may be harder (or just
>> require someone other than me).
>> If it is hung in the .post call, quite possibly it has an established
>> connecion to the target server - maybe that server is hanging.
>> The shell command:
>> netstat -rn | fgrep 172.16.68.6 | fgrep 8090
>> will show every connection to your server hosting the URL "
>> http://172.16.68.6:8090/login.xml". That will tell you if you have a
>> connection (if you are the only person doing the connecting from your
>> If you have the "lsof" program (possibly in /usr/sbin, so
>> "/usr/sbin/lsof") you can also examine the state of your hung Python
>> program. This:
>> lsof -p 12345
>> will report on the open files and network connections of the process with
>> pid 12345. Adjust to suit: you can find your program's pid ("process id")
>> with the "ps" command, or by backgrounding your program an issuing the
>> "jobs" command, which should show the process id more directly.
>> Cameron Simpson <cs at zip.com.au>
More information about the Python-list