[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9923 - in trunk: gnue-common/src/apps gnue-common/src/base gnue-
From: |
reinhard |
Subject: |
[gnue] r9923 - in trunk: gnue-common/src/apps gnue-common/src/base gnue-common/src/datasources gnue-common/src/datasources/drivers/DBSIG2 gnue-common/src/datasources/drivers/other gnue-common/src/datasources/drivers/sql/maxdb gnue-common/src/definitions gnue-common/src/logic/adapters gnue-common/src/rpc gnue-common/src/rpc/drivers/hessian gnue-common/src/rpc/drivers/xmlrpc gnue-common/src/utils gnue-forms/src |
Date: |
Fri, 2 Oct 2009 10:29:28 -0500 (CDT) |
Author: reinhard
Date: 2009-10-02 10:29:26 -0500 (Fri, 02 Oct 2009)
New Revision: 9923
Modified:
trunk/gnue-common/src/apps/GBaseApp.py
trunk/gnue-common/src/apps/errors.py
trunk/gnue-common/src/base/errors.py
trunk/gnue-common/src/base/log.py
trunk/gnue-common/src/datasources/GConnections.py
trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
trunk/gnue-common/src/datasources/drivers/other/appserver.py
trunk/gnue-common/src/datasources/drivers/sql/maxdb/Behavior.py
trunk/gnue-common/src/datasources/readgsd.py
trunk/gnue-common/src/definitions/GParser.py
trunk/gnue-common/src/logic/adapters/ecmascript.py
trunk/gnue-common/src/logic/adapters/python.py
trunk/gnue-common/src/rpc/client.py
trunk/gnue-common/src/rpc/drivers/hessian/ClientAdapter.py
trunk/gnue-common/src/rpc/drivers/hessian/ServerAdapter.py
trunk/gnue-common/src/rpc/drivers/xmlrpc/ClientAdapter.py
trunk/gnue-common/src/rpc/drivers/xmlrpc/ServerAdapter.py
trunk/gnue-common/src/utils/plugin.py
trunk/gnue-forms/src/GFInstance.py
Log:
Cleanup of exception handling code.
Modified: trunk/gnue-common/src/apps/GBaseApp.py
===================================================================
--- trunk/gnue-common/src/apps/GBaseApp.py 2009-10-02 13:06:16 UTC (rev
9922)
+++ trunk/gnue-common/src/apps/GBaseApp.py 2009-10-02 15:29:26 UTC (rev
9923)
@@ -39,9 +39,9 @@
from gnue import paths
-from gnue.common.base import log
+from gnue.common.base import errors, log
from gnue.common.apps.i18n import utranslate as u_
-from gnue.common.apps import errors, GConfig, GDebug
+from gnue.common.apps import GConfig, GDebug
from gnue.common.datasources import GConnections
from gnue.common.apps.CommandOption import CommandOption
@@ -768,15 +768,14 @@
# Catch an exception
# -------------------------------------------------------------------------
- def excepthook(self, etype, value, traceback):
+ def excepthook(self, etype, evalue, etraceback):
"""
- This function catches an exception and evaluates it using
- getException(). The exception-tuple is then passed to showException(),
- which might get overriden by a descendant.
+ Handle an exception.
"""
+
sys.excepthook = sys.__excepthook__
- log.excepthook(etype, value, traceback)
- self._showException(*errors.getException(None, etype, value,
traceback))
+ log.excepthook(etype, evalue, etraceback)
+ self._showException(*errors.format_exception(etype, evalue,
etraceback))
sys.excepthook = self.excepthook
Modified: trunk/gnue-common/src/apps/errors.py
===================================================================
--- trunk/gnue-common/src/apps/errors.py 2009-10-02 13:06:16 UTC (rev
9922)
+++ trunk/gnue-common/src/apps/errors.py 2009-10-02 15:29:26 UTC (rev
9923)
@@ -27,6 +27,8 @@
This module is *DEPRECATED*. Please use gnue.common.base.errors instead
"""
+# TODO: Deprecate everything in here with 0.8, remove with 0.9
+
import sys
import traceback
import types
@@ -49,91 +51,16 @@
"""
This class is *DEPRECATED*. Please use gnue.common.base.errors.Error
instead.
-
- The same as the builtin python Exception, but can handle messages that are
- unicode strings. This exception is available as the builtin class
- "gException". All other user-defined exceptions should be derived from
- this class.
-
- @ivar message: The error message.
- @type message: Unicode
- @ivar group: The group or category of the exception. Can be one of
'system',
- 'admin', 'application', or 'user'.
- @ivar name: The name of the exception. If set, this will be returned by
- L{getName} and L{getException} instead of the class name of the
exception.
- @ivar detail: The detail information to the exception. If set, this will be
- returned by L{getDetail} and L{getException} instead of the traceback.
"""
def __init__(self, message, group='system'):
errors.Error.__init__(self, message)
- # -------------------------------------------------------------------------
- # Get the type of the exception
- # -------------------------------------------------------------------------
-
- def getGroup(self):
- """
- Return the group of the exception.
-
- @return: Group of the exception, one of 'system', 'admin',
- 'application', or 'user'.
- """
- return self.group
-
-
- # -------------------------------------------------------------------------
- # Return the name of the exception
- # -------------------------------------------------------------------------
-
- def getName(self, aType=None):
- """
- Return the exception's name, which is the classname of the exception
- class unless overwritten with L{name}.
-
- @return: Name of the exception.
- @rtype: Unicode
- """
- return self.get_name(aType)
-
-
- # -------------------------------------------------------------------------
- # Get the detail of an exception
- # -------------------------------------------------------------------------
-
- def getDetail(self, count=None, type=None, value=None, trace=None):
- """
- Return the exception's detail, which is the traceback unless
- overwritten with L{detail}.
-
- Optionally, a number of lines can be skipped at the beginning of the
- traceback (if the detail I{is} the traceback).
-
- @param count: Number of lines to skip at the beginning of the
traceback.
- @return: Detail information for the exception.
- @rtype: Unicode
- """
- return self.get_detail(count, type, value, trace)
-
-
- # -------------------------------------------------------------------------
- # Get the message of an exception
- # -------------------------------------------------------------------------
-
- def getMessage(self):
- """
- Return the message of an exception.
- @return: Message of the exception.
- @rtype: Unicode
- """
- return self.message
-
-
# -----------------------------------------------------------------------------
# Get a tuple (type, name, message, detail) for the last exception raised
# -----------------------------------------------------------------------------
-def getException(count=None, aType=None, aValue=None, aTrace=None):
+def getException(count=None):
"""
This function is *DEPRECATED*. Please use
gnue.common.base.errors.get_exception instead.
@@ -150,4 +77,4 @@
@param count: number of lines to skip in the traceback
@return: tuple with group, name, message and detail of the last exception.
"""
- return errors.get_exception(count, aType, aValue, aTrace)
+ return errors.get_exception(tb_skip=count)
Modified: trunk/gnue-common/src/base/errors.py
===================================================================
--- trunk/gnue-common/src/base/errors.py 2009-10-02 13:06:16 UTC (rev
9922)
+++ trunk/gnue-common/src/base/errors.py 2009-10-02 15:29:26 UTC (rev
9923)
@@ -22,45 +22,46 @@
# $Id$
"""
-General exception classes.
+Unicode enabled exception base classes.
"""
import sys
import traceback
import types
-import exceptions
from gnue.common.base import i18n
-__all__ = ['get_exception', 'SystemError', 'AdminError', 'ApplicationError',
- 'UserError', 'RemoteError']
+__all__ = ['SystemError', 'AdminError', 'ApplicationError', 'UserError',
+ 'RemoteError', 'get_exception', 'format_exception']
# =============================================================================
# Base exception class for all GNUe Exceptions
# =============================================================================
-class Error(exceptions.Exception):
+class Error(Exception):
"""
The same as the builtin python Exception, but can handle messages that are
unicode strings. All other user-defined exceptions should be derived from
this class.
@ivar message: The error message.
- @type message: Unicode
+ @type message: unicode
@ivar group: The group or category of the exception. Can be one of
'system',
'admin', 'application', or 'user'.
- @ivar name: The name of the exception. If set, this will be returned by
- L{get_name} and L{get_exception} instead of the class name of the
- exception.
+ @type group: str
+ @ivar name: The name of the exception class. If set, this will be returned
+ by L{get_exception} and L{format_exception} instead of the class name
+ of the exception.
+ @type name: unicode or None
@ivar detail: The detail information to the exception. If set, this will be
- returned by L{get_detail} and L{get_exception} instead of the
+ returned by L{get_exception} and L{format_exception} instead of the
traceback.
+ @type name: unicode or None
"""
- def __init__(self, message, group='system'):
- exceptions.Exception.__init__(self, o(message))
-
+ def __init__(self, message, group='system'):
+ Exception.__init__(self, i18n.outconv(message))
self.message = message
self.group = group
self.name = None
@@ -68,65 +69,13 @@
# -------------------------------------------------------------------------
- # Return the name of the exception
+ # Unicode representation
# -------------------------------------------------------------------------
- def get_name(self, exc_type=None):
- """
- Return the exception's name, which is the classname of the exception
- class unless overwritten with L{name}.
+ def __unicode__(self):
+ return self.message
- @param exc_type: Type of the exception class to be used if no name is
- defined and the exception being handled is no longer available in
- sys.exc_info()
- @return: Name of the exception.
- @rtype: Unicode
- """
-
- if self.name is not None:
- return self.name
-
- t = sys.exc_info()[0] or exc_type
- if issubclass(t, Exception):
- return unicode(t.__name__)
- else:
- return unicode(t)
-
-
- # -------------------------------------------------------------------------
- # Get the detail of an exception
- # -------------------------------------------------------------------------
-
- def get_detail(self, count=None, etype=None, evalue=None, etrace=None):
- """
- Return the exception's detail, which is the traceback unless
- overwritten with L{detail}.
-
- Optionally, a number of lines can be skipped at the beginning of the
- traceback (if the detail I{is} the traceback).
-
- @param count: Number of lines to skip at the beginning of the
traceback.
- @return: Detail information for the exception.
- @rtype: Unicode
- """
- if self.detail is not None:
- return self.detail
-
- (stype, svalue, strace) = sys.exc_info()
- stype = stype or etype
- svalue = svalue or evalue
- strace = strace or etrace
-
- stack = traceback.format_exception(stype, svalue, strace)
- if count is not None:
- del stack[1:count + 1]
-
- # sys.exc_info() and traceback.format_exception() return 8-bit strings
- # in the current encoding, so we have to convert them back to Unicode.
- return i18n.inconv(''.join(stack))
-
-
# =============================================================================
# System Error
# =============================================================================
@@ -136,6 +85,7 @@
This exception class should be used for exceptions indicating a bug in
GNUe. Whenever such an exception is raised, one have found such a bug :)
"""
+
def __init__(self, message):
Error.__init__(self, message, 'system')
@@ -150,6 +100,7 @@
misconfiguration in a widest sense. This could be a missing module for a
dbdriver as well as an 'out of disk space' error.
"""
+
def __init__(self, message):
Error.__init__(self, message, 'admin')
@@ -163,6 +114,7 @@
This class should be used for errors caused by applications like a corrupt
trigger code, or a misformed xml-file and so on.
"""
+
def __init__(self, message):
Error.__init__(self, message, 'application')
@@ -178,6 +130,7 @@
informed of. Example: wrong password or the user has entered non-numeric
data into a numeric field, and so on.
"""
+
def __init__(self, message):
Error.__init__(self, message, 'user')
@@ -192,6 +145,7 @@
Once it has been created it never changes it's contents. A remote error
usually contains System-, Admin- or User-Errors.
"""
+
def __init__(self, group, name, message, detail):
Error.__init__(self, message)
self.group = group
@@ -199,50 +153,66 @@
self.detail = detail
+# =============================================================================
+# Exception info formatting routines
+# =============================================================================
+
# -----------------------------------------------------------------------------
# Get a tuple (type, name, message, detail) for the last exception raised
# -----------------------------------------------------------------------------
-def get_exception(count=None, exc_type=None, exc_value=None, exc_tback=None):
+def get_exception(tb_skip=None):
"""
- Return textual information about an exception.
+ Return a tuple (group, name, message, detail) for the last occured
+ exception.
- This function creates a tuple (group, name, message, detail) for the last
- exception raised. The optional parameter determines the number of lines
- skipped from the detail traceback.
+ @param tb_skip: Number of traceback lines to suppress at the beginning.
+ """
- The intended use of this function is to get the text to be displayed in
- error messages.
+ (etype, evalue, etraceback) = sys.exc_info()
+ result = format_exception(etype, evalue, etraceback, tb_skip)
+ del etype, evalue, etraceback
+ return result
- @param count: number of lines to skip in the traceback
- @return: tuple with group, name, message and detail of the last exception.
+
+# -----------------------------------------------------------------------------
+# Format a given exception
+# -----------------------------------------------------------------------------
+
+def format_exception(etype, evalue, etraceback, tb_skip=None):
"""
- (sType, sValue, sTrace) = sys.exc_info()
+ Return a tuple (group, name, message, detail) for the exception.
- exc_type = exc_type or sType
- exc_value = exc_value or sValue
- exc_tback = exc_tback or sTrace
+ @param etype, evalue, etraceback: Exception info as returned by
+ sys.exc_info().
+ @param tb_skip: Number of traceback lines to suppress at the beginning.
+ """
- if isinstance(exc_value, Error):
- return (exc_value.group,
- exc_value.get_name(exc_type),
- exc_value.message,
- exc_value.get_detail(count, exc_type, exc_value, exc_tback))
+ # group
+ if isinstance(evalue, Error):
+ group = evalue.group
else:
- # Exception was not a descendant of Error, so we construct the
- # tuple from the exception information
- lines = traceback.format_exception(exc_type, exc_value, exc_tback)
- if count is not None:
- del lines[1:count + 1]
+ group = 'system'
- if isinstance(exc_type, types.InstanceType):
- name = unicode(exc_type)
+ # name
+ if isinstance(evalue, Error) and evalue.name is not None:
+ name = evalue.name
+ else:
+ if isinstance(etype, types.InstanceType):
+ name = unicode(etype)
else:
- name = unicode(exc_type.__name__)
- name = name.split('.')[-1]
- message = unicode(exc_value)
- detail = ''.join(lines)
- if isinstance(detail, str):
- detail = i18n.inconv(detail)
+ name = unicode(etype.__name__)
- return ('system', name, message, detail)
+ # detail
+ if isinstance(evalue, Error) and evalue.detail is not None:
+ detail = evalue.detail
+ else:
+ lines = traceback.format_exception(etype, evalue, etraceback)
+ # Delete lines in the traceback as requested.
+ if tb_skip:
+ del lines[1:tb_skip + 1]
+ # traceback.format_exception() returns an 8 bit string encoded in the
+ # current encoding, so we have to convert to Unicode.
+ detail = i18n.inconv(''.join(lines))
+
+ return (group, name, unicode(evalue), detail)
Modified: trunk/gnue-common/src/base/log.py
===================================================================
--- trunk/gnue-common/src/base/log.py 2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/base/log.py 2009-10-02 15:29:26 UTC (rev 9923)
@@ -35,8 +35,7 @@
import sys
import traceback
-from gnue.common.base import utils
-from gnue.common.apps import errors
+from gnue.common.base import errors, utils
__all__ = ['logged_f', 'deprecated_f',
'logged_f_n', 'deprecated_f_n',
@@ -310,12 +309,13 @@
@param etraceback: Exception traceback
@type etraceback: traceback
"""
- (group, name, message, detail) = errors.getException(None, etype, evalue,
+ (group, name, message, detail) = errors.format_exception(etype, evalue,
etraceback)
- logger = "exception.%s.%s" % (group, etype)
+ logger = "exception.%s.%s" % (group, name)
text = u_("Unhandled exception %s:\n%s") % (name, detail)
error_n(logger, text)
+
# -----------------------------------------------------------------------------
# Exception and call stack logging
# -----------------------------------------------------------------------------
Modified: trunk/gnue-common/src/datasources/GConnections.py
===================================================================
--- trunk/gnue-common/src/datasources/GConnections.py 2009-10-02 13:06:16 UTC
(rev 9922)
+++ trunk/gnue-common/src/datasources/GConnections.py 2009-10-02 15:29:26 UTC
(rev 9923)
@@ -488,9 +488,9 @@
# We're done!
attempts = 0
- except Exceptions.LoginError:
+ except Exceptions.LoginError, e:
attempts -= 1
- errortext = errors.getException () [2]
+ errortext = unicode(e)
if not attempts:
# Four times is plenty...
Modified: trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
2009-10-02 15:29:26 UTC (rev 9923)
@@ -128,8 +128,8 @@
assert gDebug (3, 'DBSIG2 Connect')
try:
self._native = self._driver.connect (*params, **kwargs)
- except self._driver.DatabaseError:
- raise Exceptions.LoginError, errors.getException () [2]
+ except self._driver.DatabaseError, e:
+ raise Exceptions.LoginError(unicode(e))
# ---------------------------------------------------------------------------
@@ -191,9 +191,8 @@
assert gDebug (3, 'DBSIG2 Commit')
try:
self._native.commit ()
- except self._driver.DatabaseError:
- raise Exceptions.ConnectionError, (errors.getException () [2], 'COMMIT',
- None)
+ except self._driver.DatabaseError, e:
+ raise Exceptions.ConnectionError(unicode(e), 'COMMIT', None)
# ---------------------------------------------------------------------------
@@ -367,10 +366,9 @@
cursor.execute (s, p)
else:
cursor.execute (s)
- except:
+ except Exception, e:
cursor.close ()
- raise Exceptions.ConnectionError, (errors.getException () [2], statement,
- parameters)
+ raise Exceptions.ConnectionError(unicode(e), statement, parameters)
return cursor
Modified: trunk/gnue-common/src/datasources/drivers/other/appserver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/other/appserver.py
2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/datasources/drivers/other/appserver.py
2009-10-02 15:29:26 UTC (rev 9923)
@@ -385,7 +385,7 @@
self._session = self._sm.open (connectData)
except errors.RemoteError, e:
- if e.get_name() == 'AuthError':
+ if e.name == 'AuthError':
raise Exceptions.LoginError, e.message
else:
raise
Modified: trunk/gnue-common/src/datasources/drivers/sql/maxdb/Behavior.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sql/maxdb/Behavior.py
2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/datasources/drivers/sql/maxdb/Behavior.py
2009-10-02 15:29:26 UTC (rev 9923)
@@ -99,9 +99,9 @@
session = sapdb.dbm.DBM (host, '', '',
"%s,%s" % (res ['_username'], res ['_password']))
- except sapdb.dbm.CommunicationError, err:
+ except sapdb.dbm.CommunicationError, e:
raise errors.AdminError, \
- u_("Unable to establish session: %s") % errors.getException () [2]
+ u_("Unable to establish session: %s") % e
try:
result = session.cmd ('db_enum')
Modified: trunk/gnue-common/src/datasources/readgsd.py
===================================================================
--- trunk/gnue-common/src/datasources/readgsd.py 2009-10-02 13:06:16 UTC
(rev 9922)
+++ trunk/gnue-common/src/datasources/readgsd.py 2009-10-02 15:29:26 UTC
(rev 9923)
@@ -228,9 +228,9 @@
for filename in self.ARGUMENTS:
self._files.append(openResource(filename))
- except IOError:
+ except IOError, e:
raise GBaseApp.StartupError, \
- u_("Unable to open input file: %s") % errors.getException()[2]
+ u_("Unable to open input file: %s") % e
# --- Setup ouput file if requested -----------------------------------
Modified: trunk/gnue-common/src/definitions/GParser.py
===================================================================
--- trunk/gnue-common/src/definitions/GParser.py 2009-10-02 13:06:16 UTC
(rev 9922)
+++ trunk/gnue-common/src/definitions/GParser.py 2009-10-02 15:29:26 UTC
(rev 9923)
@@ -148,7 +148,7 @@
parser.parse (stream)
except xml.sax.SAXParseException, e:
- raise MarkupError, (errors.getException () [2], url, e.getLineNumber ())
+ raise MarkupError(uniocde(e), url, e.getLineNumber())
object = dh.getRoot ()
Modified: trunk/gnue-common/src/logic/adapters/ecmascript.py
===================================================================
--- trunk/gnue-common/src/logic/adapters/ecmascript.py 2009-10-02 13:06:16 UTC
(rev 9922)
+++ trunk/gnue-common/src/logic/adapters/ecmascript.py 2009-10-02 15:29:26 UTC
(rev 9923)
@@ -115,7 +115,7 @@
self._cx.eval_script(self._realcode)
except:
- (group, name, message, detail) = errors.getException (1)
+ (group, name, message, detail) = errors.get_exception(tb_skip=1)
if group == 'system':
group = 'application'
raise language.CompileError, (group, name, message, detail)
@@ -131,7 +131,7 @@
return self._cx.call_fn(self._hname, ()) #args)
except:
- (group, name, message, detail) = errors.getException (1)
+ (group, name, message, detail) = errors.get_exception(tb_skip=1)
if group == 'system':
group = 'application'
raise language.RuntimeError, (group, name, message, detail)
@@ -170,7 +170,7 @@
self._cx.eval_script(self._realcode)
except:
- (group, name, message, detail) = errors.getException (1)
+ (group, name, message, detail) = errors.get_exception(tb_skip=1)
if group == 'system':
group = 'application'
raise language.CompileError, (group, name, message, detail)
@@ -183,7 +183,7 @@
return retval[0]
except:
- (group, name, message, detail) = errors.getException (1)
+ (group, name, message, detail) = errors.get_exception(tb_skip=1)
if group == 'system':
group = 'application'
raise language.RuntimeError, (group, name, message, detail)
Modified: trunk/gnue-common/src/logic/adapters/python.py
===================================================================
--- trunk/gnue-common/src/logic/adapters/python.py 2009-10-02 13:06:16 UTC
(rev 9922)
+++ trunk/gnue-common/src/logic/adapters/python.py 2009-10-02 15:29:26 UTC
(rev 9923)
@@ -28,7 +28,7 @@
Language adapter plugin for Python.
"""
-from gnue.common.apps import errors
+from gnue.common.base import errors
from gnue.common.logic import language
from gnue.common.logic.adapters import Base
@@ -140,7 +140,7 @@
compiled_code = compile(revised_code.encode('utf-8'),
'<%s>' % self.shortname.encode('utf-8'), 'exec')
except:
- (group, name, message, detail) = errors.getException(1)
+ (group, name, message, detail) = errors.get_exception(tb_skip=1)
if group == 'system':
group = 'application'
raise language.CompileError, (group, name, message, detail)
@@ -262,7 +262,7 @@
except:
# All others raise a RuntimeError
- (group, name, message, detail) = errors.getException (2)
+ (group, name, message, detail) = errors.get_exception(tb_skip=2)
if group == 'system':
group = 'application'
raise language.RuntimeError, (group, name, message, detail)
Modified: trunk/gnue-common/src/rpc/client.py
===================================================================
--- trunk/gnue-common/src/rpc/client.py 2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/rpc/client.py 2009-10-02 15:29:26 UTC (rev 9923)
@@ -28,7 +28,7 @@
__all__ = ['attach', 'InvalidAdapter', 'AdapterInitializationError',
'AdapterConfigurationError', 'ProgrammingError',
'AccessDeniedError']
-from gnue.common.apps import errors, plugin
+from gnue.common.base import errors, plugin
# =============================================================================
# Public functions
@@ -121,7 +121,6 @@
import traceback
import sys
- from gnue.common.apps import errors
import datetime
if len (sys.argv) >= 2 and \
@@ -162,7 +161,7 @@
except Exception, e:
print "-" * 70
- (group, name, message, detail) = errors.getException()
+ (group, name, message, detail) = errors.get_exception()
print "Exception Group:", group
print "Exception Name :", name
print "Message :", message
Modified: trunk/gnue-common/src/rpc/drivers/hessian/ClientAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/hessian/ClientAdapter.py 2009-10-02
13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/rpc/drivers/hessian/ClientAdapter.py 2009-10-02
15:29:26 UTC (rev 9923)
@@ -198,8 +198,8 @@
(exType, exName, exMessage, exDetail) = e.message.split (u"\x91")
raise errors.RemoteError, (exType, exName, exMessage, exDetail)
- except socket.error:
- raise errors.AdminError, errors.getException () [2]
+ except socket.error, e:
+ raise errors.AdminError(unicode(e))
result = typeconv.rpc_to_python (result, self.__wrapProxy,
client.InvalidParameter)
Modified: trunk/gnue-common/src/rpc/drivers/hessian/ServerAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/hessian/ServerAdapter.py 2009-10-02
13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/rpc/drivers/hessian/ServerAdapter.py 2009-10-02
15:29:26 UTC (rev 9923)
@@ -28,9 +28,9 @@
import datetime
from SimpleHessianServer import SimpleHessianServer
+from gnue.common.base import errors
from gnue.common.rpc import server
from gnue.common.rpc.drivers import Base
-from gnue.common.apps import errors
from gnue.common.utils import http
@@ -268,8 +268,8 @@
Process a Hessian request. Exceptions are reported by L{hessianlib.Fault}
instances. Such an instance carries a string consisting of the group, name,
message and traceback of the exception, separated by the unicode character
- u'0x91' (see L{errors.getException}). The underlying connection will be
- closed only if stated by the headers (e.g. 'Connection: close')
+ u'0x91'. The underlying connection will be closed only if stated by the
+ headers (e.g. 'Connection: close')
"""
try:
@@ -284,7 +284,7 @@
response = hessianlib.dumps (response, methodresponse = 1)
except:
- stack = u"\x91".join (errors.getException ())
+ stack = u"\x91".join (errors.get_exception())
response = hessianlib.Fault (1, stack)
response = hessianlib.dumps (response, methodresponse = 1)
Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/ClientAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/ClientAdapter.py 2009-10-02
13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/ClientAdapter.py 2009-10-02
15:29:26 UTC (rev 9923)
@@ -204,8 +204,8 @@
(exType, exName, exMessage, exDetail) = e.faultString.split (u'\x91')
raise errors.RemoteError, (exType, exName, exMessage, exDetail)
- except socket.error:
- raise errors.AdminError, errors.getException () [2]
+ except socket.error, e:
+ raise errors.AdminError(unicode(e))
result = typeconv.rpc_to_python (result, self.__wrapProxy,
client.InvalidParameter)
Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/ServerAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/ServerAdapter.py 2009-10-02
13:06:16 UTC (rev 9922)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/ServerAdapter.py 2009-10-02
15:29:26 UTC (rev 9923)
@@ -26,11 +26,11 @@
import SocketServer
import typeconv
import datetime
+from SimpleXMLRPCServer import SimpleXMLRPCServer
-from SimpleXMLRPCServer import SimpleXMLRPCServer
+from gnue.common.base import errors
from gnue.common.rpc import server
from gnue.common.rpc.drivers import Base
-from gnue.common.apps import errors
from gnue.common.utils import http
@@ -268,8 +268,8 @@
Process a XML-RPC request. Exceptions are reported by L{xmlrpclib.Fault}
instances. Such an instance carries a string consisting of the group, name,
message and traceback of the exception, separated by the unicode character
- u'0x91' (see L{errors.getException}). The underlying connection will be
- closed only if stated by the headers (e.g. 'Connection: close')
+ u'0x91'. The underlying connection will be closed only if stated by the
+ headers (e.g. 'Connection: close')
"""
try:
@@ -284,7 +284,7 @@
response = xmlrpclib.dumps (response, methodresponse = 1, allow_none = 1)
except:
- stack = u'\x91'.join (errors.getException ())
+ stack = u'\x91'.join (errors.get_exception())
response = xmlrpclib.Fault (1, stack)
response = xmlrpclib.dumps (response, methodresponse = 1)
Modified: trunk/gnue-common/src/utils/plugin.py
===================================================================
--- trunk/gnue-common/src/utils/plugin.py 2009-10-02 13:06:16 UTC (rev
9922)
+++ trunk/gnue-common/src/utils/plugin.py 2009-10-02 15:29:26 UTC (rev
9923)
@@ -89,7 +89,7 @@
message = u_("Cannot load plugin '%s'") % self.name
detail = u_("The following plugins failed:\n")
for (name, exc) in self.exceptions.items():
- detail += "* %s: %s: %s" % (name, exc[1], exc[2])
+ detail += u"* %s: %s" % (name, exc)
else:
message = u_("Cannot find plugin '%s'") % self.name
detail = None
@@ -236,8 +236,8 @@
try:
mod = __import__(base, None, None, '*')
- except:
- __failed[base] = errors.get_exception()
+ except Exception, e:
+ __failed[base] = e
return {base: __failed[base]}
if hasattr(mod, '__noplugin__'):
@@ -250,8 +250,8 @@
if try_to_init and hasattr(mod, '__initplugin__'):
try:
mod.__initplugin__()
- except:
- __failed[base] = errors.get_exception()
+ except Exception, e:
+ __failed[base] = e
return {base: __failed[base]}
return {base: mod}
@@ -277,8 +277,8 @@
try:
mod = __import__(base, None, None, '*')
- except:
- __failed[base] = errors.get_exception()
+ except Exception, e:
+ __failed[base] = e
return {base: __failed[base]}
if hasattr(mod, '__noplugin__'):
@@ -290,8 +290,8 @@
if hasattr(mod, '__initplugin__'):
try:
mod.__initplugin__()
- except:
- __failed[base] = errors.get_exception()
+ except Exception, e:
+ __failed[base] = e
return {base: __failed[base]}
return mod
@@ -318,8 +318,8 @@
try:
mod = __import__(base, None, None, '*')
- except:
- __failed[base] = errors.get_exception()
+ except Exception, e:
+ __failed[base] = e
return {base: __failed[base]}
if hasattr(mod, '__noplugin__'):
@@ -339,8 +339,8 @@
mod = __import__(base + '.' + name, None, None, '*')
except ImportError:
pass
- except:
- __failed[base + '.' + name] = errors.get_exception()
+ except Exception, e:
+ __failed[base + '.' + name] = e
return {base + '.' + name: __failed[base + '.' + name]}
else:
return __first(base + '.' + name, identifier)
@@ -372,7 +372,7 @@
if isinstance(iresult, ModuleType):
print "ok"
else:
- print iresult[1] + ": " + iresult[2]
+ print unicode(iresult)
elif sys.argv[1] == 'test':
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2009-10-02 13:06:16 UTC (rev 9922)
+++ trunk/gnue-forms/src/GFInstance.py 2009-10-02 15:29:26 UTC (rev 9923)
@@ -289,8 +289,8 @@
form = self.__load(filehandle, None, True)
filehandle.close()
return form
- except IOError:
- raise FileOpenError, errors.getException()[2]
+ except IOError, e:
+ raise FileOpenError(unicode(e))
# -------------------------------------------------------------------------
@@ -337,8 +337,8 @@
return form
- except IOError:
- raise FileOpenError, errors.getException()[2]
+ except IOError, e:
+ raise FileOpenError(uniocde(e))
# -------------------------------------------------------------------------
@@ -389,14 +389,13 @@
# Show an exception
# -------------------------------------------------------------------------
- def show_exception(self, group=None, name=None, message=None, detail=None):
+ def show_exception(self, group, name, message, detail):
"""
- This function shows the last exception raised.
+ This function shows the given exception.
The exact way of showing the message depends on the exception group.
"""
- if (group, name, message, detail) == (None, None, None, None):
- (group, name, message, detail) = errors.getException()
+
if group == 'user':
self._uiinstance._ui_show_error_(message)
else:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9923 - in trunk: gnue-common/src/apps gnue-common/src/base gnue-common/src/datasources gnue-common/src/datasources/drivers/DBSIG2 gnue-common/src/datasources/drivers/other gnue-common/src/datasources/drivers/sql/maxdb gnue-common/src/definitions gnue-common/src/logic/adapters gnue-common/src/rpc gnue-common/src/rpc/drivers/hessian gnue-common/src/rpc/drivers/xmlrpc gnue-common/src/utils gnue-forms/src,
reinhard <=