Re: error in except

Discussion in 'Python' started by Albert Hopkins, Feb 5, 2013.

  1. On Mon, Feb 4, 2013, at 04:49 PM, Rodrick Brown wrote:
    > For the life of me I cant figure out why this exception is being thrown.
    > How could I use pdb to debug this?
    >
    > $ python udp_local2.py server
    > File "udp_local2.py", line 36
    > except:
    > ^
    > SyntaxError: invalid syntax
    >
    >
    > #!/usr/bin/env python
    >
    > import random, socket, sys
    > s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    >
    > MAX = 65535
    > PORT = 1060
    >
    > if 2 <= len(sys.argv) <= 3 and sys.argv[1] == 'server':
    > interface = sys.argv[2] if len(sys.argv) > 2 else ''
    > s.bind((interface, PORT))
    > print 'Listening at', s.getsockname()
    > while True:
    > data, address = s.recvfrom(MAX)
    > if random.randint(0, 1):
    > print 'The client at', address, 'says:', repr(data)
    > s.sendto('Your data was %d bytes' % len(data), address)
    > else:
    > print 'Pretending to drop packet from', address
    >
    > elif len(sys.argv) == 3 and sys.argv[1] == 'client':
    > hostname = sys.argv[2]
    > s.connect((hostname, PORT))
    > print 'Client socket name is', s.getsockname()
    > delay = 0.1
    > while True:
    > s.send('This is another message')
    > print 'Waiting up to', delay, 'seconds for a reply'
    > s.settimeout(delay)
    > try:
    > data = s.recv(MAX)
    > except socket.timeout:
    > delay *= 2
    > if delay > 2.0:
    > raise RuntimeError('I think the server is down')
    > except:
    > raise
    > else:
    > break
    > print 'The server says', repr(data)
    > else:
    > print >> sys.stderr, 'usage: %d server [<interfae>]' %
    > sys.argv[0]
    > print >> sys.stderr, ' or: %d client <host>' % sys.argv[0]
    > sys.exit(2)
    > --
    > http://mail.python.org/mailman/listinfo/python-list


    Your "except" statement is on the same level as "if delay > 2.0"..
    effectively:

    if delay > 2.0
    ...
    except:

    which is not valid syntax. Excepts go with try: blocks, not if: blocks.
     
    Albert Hopkins, Feb 5, 2013
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John Salerno
    Replies:
    20
    Views:
    872
    John Salerno
    Aug 11, 2006
  2. Fabio Z Tessitore

    who is simpler? try/except/else or try/except

    Fabio Z Tessitore, Aug 12, 2007, in forum: Python
    Replies:
    5
    Views:
    390
  3. David House

    try -> except -> else -> except?

    David House, Jul 6, 2009, in forum: Python
    Replies:
    2
    Views:
    358
    Bruno Desthuilliers
    Jul 6, 2009
  4. Peng Yu
    Replies:
    1
    Views:
    552
    Steven D'Aprano
    Nov 18, 2009
  5. MRAB
    Replies:
    0
    Views:
    861
Loading...

Share This Page