Mercurial > p > roundup > code
annotate roundup/exceptions.py @ 3808:36eb9e8faf30
Real handling of network errors.
Fix for correctly ignoring net errors: It seems that (at least in
my installed Debian version of python2.4) socket.error does not have an
errno attribute but is simply a tuple of (errno, strerror). So we now
try to get errno first and if this fails we try to use err [0]. This
works for a simple test-script to which I can connect with telnet on
port 4711 -- it will correctly detect errno.EPIPE if I terminate the
telnet session:
#!/usr/bin/python2.4
import socket
import errno
from SocketServer import TCPServer, BaseRequestHandler
class Server (BaseRequestHandler) :
def handle (self) :
self.file = self.request.makefile ()
try :
while True :
print >> self.file, "Testing..."
except socket.error, err :
print getattr (err, 'errno', "Has no errno")
print err [0]
print err [0] == errno.EPIPE
raise
# end def handle
# end class Server
server_address = ('', 4711)
s = TCPServer (server_address, Server)
s.serve_forever ()
Sorry for the verbose log-message but I hope to document my debugging
activities
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Tue, 16 Jan 2007 10:16:08 +0000 |
| parents | 3fd672293712 |
| children | 042ace5ddb7c |
| rev | line source |
|---|---|
|
2129
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 #$Id: exceptions.py,v 1.1 2004-03-26 00:44:11 richard Exp $ |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 '''Exceptions for use across all Roundup components. |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 ''' |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 __docformat__ = 'restructuredtext' |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 class Reject(Exception): |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 '''An auditor may raise this exception when the current create or set |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 operation should be stopped. |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 It is up to the specific interface invoking the create or set to |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 handle this exception sanely. For example: |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 - mailgw will trap and ignore Reject for file attachments and messages |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 - cgi will trap and present the exception in a nice format |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 ''' |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 pass |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 # vim: set filetype=python ts=4 sw=4 et si |
