~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

Better display of BzrError classes that are not BzrNewErrors.

(Suggested by mpe)

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
import logging
46
46
 
47
47
import bzrlib
48
 
from bzrlib.errors import BzrNewError
 
48
from bzrlib.errors import BzrError, BzrNewError
49
49
 
50
50
 
51
51
_file_handler = None
252
252
    try:
253
253
        if exc_type is None:
254
254
            return '(no exception)'
255
 
        if isinstance(exc_object, BzrNewError):
 
255
        if isinstance(exc_object, (BzrError, BzrNewError)):
256
256
            return str(exc_object)
257
257
        else:
258
258
            import traceback
263
263
            if tb:
264
264
                msg += '\n  at %s line %d\n  in %s' % (tb[-1][:3])
265
265
            return msg
266
 
    except:
267
 
        return '(error formatting exception of type %s)' % exc_type
 
266
    except Exception, formatting_exc:
 
267
        # XXX: is this really better than just letting it run up?
 
268
        return '(error formatting exception of type %s: %s)' \
 
269
                % (exc_type, formatting_exc)