error in except
Laxmikant Chitare
laxmikant.general at gmail.com
Tue Feb 5 01:51:49 EST 2013
One more thing, apart from what Albert mentioned.
Exceptions must be classes or instances. In effect you cannot just do
'raise'. 'raise' statement must be followed by a class or an instance.
On Tue, Feb 5, 2013 at 6:28 AM, Albert Hopkins <marduk at letterboxes.org>wrote:
>
>
> 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.
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130205/c45eacd0/attachment.html>
More information about the Python-list
mailing list