Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #38171
| References | <CABRP1o-UkR9j3Ry+xYgpFobAo0yETVvy_8pUm4UYZQO0=rSEAw@mail.gmail.com> <1360025881.32270.140661186861365.09CB02A5@webmail.messagingengine.com> |
|---|---|
| Date | 2013-02-05 12:21 +0530 |
| Subject | Re: error in except |
| From | Laxmikant Chitare <laxmikant.general@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1356.1360050582.2939.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
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@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
>
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: error in except Laxmikant Chitare <laxmikant.general@gmail.com> - 2013-02-05 12:21 +0530
csiph-web