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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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

Roundup Issue Tracker: http://roundup-tracker.org/