[PATCH] raise exceptions with Exception subclasses

Bart Trojanowski bart at jukie.net
Tue Aug 23 08:35:25 CDT 2005


Fixed the patch.  Using Exception subclasses.


diff -r f859e9cba1b9 mercurial/hgweb.py
--- a/mercurial/hgweb.py	Mon Aug 22 08:22:29 2005
+++ b/mercurial/hgweb.py	Tue Aug 23 09:30:52 2005
@@ -63,6 +63,8 @@
                 write(part)
         else:
             sys.stdout.write(str(thing))
+
+class LookupError(Exception): pass
 
 class templater:
     def __init__(self, mapfile, filters = {}, defaults = {}):
@@ -81,7 +83,7 @@
                 if m:
                     self.map[m.group(1)] = os.path.join(self.base, m.group(2))
                 else:
-                    raise "unknown map entry '%s'"  % l
+                    raise LookupError("unknown map entry '%s'" % l)
 
     def __call__(self, t, **map):
         m = self.defaults.copy()
diff -r f859e9cba1b9 mercurial/revlog.py
--- a/mercurial/revlog.py	Mon Aug 22 08:22:29 2005
+++ b/mercurial/revlog.py	Tue Aug 23 09:30:52 2005
@@ -32,7 +32,7 @@
     if t == '\0': return bin
     if t == 'x': return zlib.decompress(bin)
     if t == 'u': return bin[1:]
-    raise "unknown compression type %s" % t
+    raise RevlogError("unknown compression type %s" % t)
 
 def hash(text, p1, p2):
     l = [p1, p2]
@@ -120,6 +120,8 @@
     def __setitem__(self, key, val):
         self.p.map[key] = val
 
+class RevlogError(Exception): pass
+
 class revlog:
     def __init__(self, opener, indexfile, datafile):
         self.indexfile = indexfile
@@ -505,7 +507,7 @@
             if node in self.nodemap:
                 # this can happen if two branches make the same change
                 if unique:
-                    raise "already have %s" % hex(node[:4])
+                    raise RevlogError("already have %s" % hex(node[:4]))
                 chain = node
                 continue
             delta = chunk[80:]
@@ -514,7 +516,7 @@
                 # retrieve the parent revision of the delta chain
                 chain = p1
                 if not chain in self.nodemap:
-                    raise "unknown base %s" % short(chain[:4])
+                    raise RevlogError("unknown base %s" % short(chain[:4]))
 
             # full versions are inserted when the needed deltas become
             # comparable to the uncompressed text or when the previous
@@ -533,7 +535,7 @@
                 text = self.patches(text, [delta])
                 chk = self.addrevision(text, transaction, link, p1, p2)
                 if chk != node:
-                    raise "consistency error adding group"
+                    raise RevlogError("consistency error adding group")
                 measure = len(text)
             else:
                 e = (end, len(cdelta), self.base(t), link, p1, p2, node)
diff -r f859e9cba1b9 mercurial/transaction.py
--- a/mercurial/transaction.py	Mon Aug 22 08:22:29 2005
+++ b/mercurial/transaction.py	Tue Aug 23 09:30:52 2005
@@ -14,13 +14,15 @@
 import os
 import util
 
+class AssertionError(Exception): pass
+
 class transaction:
     def __init__(self, report, opener, journal, after = None):
         self.journal = None
 
         # abort here if the journal already exists
         if os.path.exists(journal):
-            raise "journal already exists - run hg recover"
+            raise AssertionError("journal already exists - run hg recover")
 
         self.report = report
         self.opener = opener
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.selenic.com/pipermail/mercurial/attachments/20050823/3fbc2275/attachment-0001.pgp


More information about the Mercurial mailing list