~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

- convert NotBranchError to new exception base

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
 
 
18
 
# TODO: Change to a standard exception pattern: 
19
 
#
20
 
# - docstring of exceptions is a template for formatting the exception
21
 
#   so the __str__ method can be defined only in the superclass
22
 
# - the arguments to the exception are interpolated into this string
23
 
#
24
 
# when printing the exception we'd then require special handling only
25
 
# for built-in exceptions with no decent __str__ method, such as 
26
 
# ValueError and AssertionError.  See 
27
 
# scott@canonical.com--2005/hct--devel--0.10 util/errors.py
28
 
 
29
 
 
30
17
"""Exceptions for bzr, and reporting of them.
31
18
 
32
19
Exceptions are caught at a high level to report errors to the user, and
63
50
 
64
51
# based on Scott James Remnant's hct error classes
65
52
 
 
53
# TODO: is there any value in providing the .args field used by standard
 
54
# python exceptions?   A list of values with no names seems less useful 
 
55
# to me.
 
56
 
 
57
# TODO: perhaps convert the exception to a string at the moment it's 
 
58
# constructed to make sure it will succeed
 
59
 
66
60
 
67
61
class BzrError(StandardError):
68
62
    def __str__(self):
83
77
            return n + `self.args`
84
78
 
85
79
 
86
 
class BzrNewError(Exception):
 
80
class BzrNewError(BzrError):
87
81
    """bzr error"""
88
82
    # base classes should override the docstring with their human-
89
83
    # readable explanation
119
113
        return self.args[0]
120
114
 
121
115
 
122
 
class NotBranchError(BzrError):
123
 
    """Specified path is not in a branch"""
 
116
class NotBranchError(BzrNewError):
 
117
    """Not a branch: %(path)s"""
124
118
    def __init__(self, path):
125
 
        BzrError.__init__(self, path)
126
 
 
127
 
    def __str__(self):
128
 
        return 'not a branch: %s' % self.args[0]
129
 
 
130
 
## class NotBranchError(BzrNewError):
131
 
##     """Not a branch: %(path)s"""
132
 
##     def __init__(self, path):
133
 
##         BzrNewError.__init__(self)
134
 
##         self.path = path
135
 
## 
 
119
        BzrNewError.__init__(self)
 
120
        self.path = path
 
121
 
136
122
 
137
123
class UnsupportedFormatError(BzrError):
138
124
    """Specified path is a bzr branch that we cannot read."""