On 26Sep2015 09:46, Gonzalo V <gvm2...@gmail.com> wrote:
Hi Cameron.
i had the same problems and you have to tell to python what to do with the
connect problem.

Definitely. That's why we're encouraging him to handle specific exceptions.

try this:
...
except *urllib.error.HTTPError* as e:
           if e.getcode()==504:
               disp = "SIN RESPUESTA DEL SERVIDOR" #(No answer from the
server)
               nombre=''
               origen=''

               precioAhora=''
               print(e.getcode(),disp)
               pass

You're aware that the "pass" there does nothing? Perhaps you're considering "continue"?

Normally when I write a specific clause like that it looks a bit like this:

 try this:
   ...
 except *urllib.error.HTTPError* as e:
   if e.getcode()==504:
     warning("about 504 error...")
     nombre = ''
   else:
     raise

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 :-(

Cheers,
Cameron Simpson <c...@zip.com.au>

Saludos,
Gonzalo

2015-09-25 3:24 GMT-04:00 Cameron Simpson <c...@zip.com.au>:

On 24Sep2015 22:46, shiva upreti <katewinslet...@gmail.com> wrote:

On Friday, September 25, 2015 at 10:55:45 AM UTC+5:30, Cameron Simpson
wrote:

On 24Sep2015 20:57, shiva upreti <katewinslet...@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:

 try:
   r=requests.post(url, data=query_args)
 except:
   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
that).

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
machine).

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.


Cheers,
Cameron Simpson <c...@zip.com.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to