diff --git a/doc/apibuild.py b/doc/apibuild.py
index 581fbc3e7c6ffa744bdf49cb473ee5b2fd93b6ed_ZG9jL2FwaWJ1aWxkLnB5..72df6fbf6c3e83f8024736ccd3c1785a9619f141_ZG9jL2FwaWJ1aWxkLnB5 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -192,5 +192,5 @@
         if name[0:2] == '__':
             return None
         d = None
-        try:
+        if name in self.identifiers:
            d = self.identifiers[name]
@@ -196,6 +196,6 @@
            d = self.identifiers[name]
-           d.update(header, module, type, lineno, info, extra, conditionals)
-        except:
+           d.update(header, module, type, info, extra, conditionals)
+        else:
            d = identifier(name, header, module, type, lineno, info, extra, conditionals)
            self.identifiers[name] = d
 
@@ -214,5 +214,5 @@
         if name[0:2] == '__':
             return None
         d = None
-        try:
+        if name in self.identifiers:
            d = self.identifiers[name]
@@ -218,6 +218,6 @@
            d = self.identifiers[name]
-           d.update(header, module, type, lineno, info, extra, conditionals)
-        except:
+           d.update(header, module, type, info, extra, conditionals)
+        else:
            d = identifier(name, header, module, type, lineno, info, extra, conditionals)
            self.identifiers[name] = d