[CMF-checkins] CVS: CMF/CMFCore - DirectoryView.py:1.41 Skinnable.py:1.13 TypesTool.py:1.65

Yvo Schubbe schubbe at web.de
Mon Jan 12 05:26:11 EST 2004


Update of /cvs-repository/CMF/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv31815/CMFCore

Modified Files:
	DirectoryView.py Skinnable.py TypesTool.py 
Log Message:
- fixed some bare excepts


=== CMF/CMFCore/DirectoryView.py 1.40 => 1.41 ===
--- CMF/CMFCore/DirectoryView.py:1.40	Sun Dec  7 15:44:05 2003
+++ CMF/CMFCore/DirectoryView.py	Mon Jan 12 05:26:10 2004
@@ -95,8 +95,10 @@
         '''
         types = {}
         fp = expandpath(self.filepath)
-        try: f = open(path.join(fp, '.objects'), 'rt')
-        except: pass
+        try:
+            f = open( path.join(fp, '.objects'), 'rt' )
+        except IOError:
+            pass
         else:
             lines = f.readlines()
             f.close()
@@ -236,17 +238,26 @@
                             tb = None   # Avoid leaking frame!
 
                     # FS-based security
-                    try:
-                        permissions = metadata.getSecurity()
-                        if permissions is not None:
-                            for name in permissions.keys():
-                                acquire,roles = permissions[name]
+                    permissions = metadata.getSecurity()
+                    if permissions is not None:
+                        for name in permissions.keys():
+                            acquire, roles = permissions[name]
+                            try:
                                 ob.manage_permission(name,roles,acquire)
-                    except:
-                        LOG('DirectoryView',
-                            ERROR,
-                            'Error setting permissions',
-                            error=exc_info())
+                            except ValueError:
+                                LOG('DirectoryView',
+                                    ERROR,
+                                    'Error setting permissions',
+                                    error=exc_info())
+                            except:
+                                # for Zope versions before 2.7.0
+                                if exc_info()[0] == 'Invalid Permission':
+                                    LOG('DirectoryView',
+                                        ERROR,
+                                        'Error setting permissions',
+                                        error=exc_info())
+                                else:
+                                    raise
 
                     # only DTML Methods can have proxy roles
                     if hasattr(ob, '_proxy_roles'):


=== CMF/CMFCore/Skinnable.py 1.12 => 1.13 ===
--- CMF/CMFCore/Skinnable.py:1.12	Mon Dec  1 08:55:42 2003
+++ CMF/CMFCore/Skinnable.py	Mon Jan 12 05:26:10 2004
@@ -29,10 +29,10 @@
 # used to do.
 try:
     superGetAttr = ObjectManager.__getattr__
-except:
+except AttributeError:
     try:
         superGetAttr = ObjectManager.inheritedAttribute('__getattr__')
-    except:
+    except AttributeError:
         superGetAttr = None
 
 _marker = []  # Create a new marker object.


=== CMF/CMFCore/TypesTool.py 1.64 => 1.65 ===
--- CMF/CMFCore/TypesTool.py:1.64	Tue Dec 23 16:47:23 2003
+++ CMF/CMFCore/TypesTool.py	Mon Jan 12 05:26:10 2004
@@ -495,9 +495,12 @@
             return default
         try:
             p = container.manage_addProduct[self.product]
-            m = getattr(p, self.factory, None)
-            if m is None:
-                return default
+        except AttributeError:
+            LOG('Types Tool', ERROR, '_queryFactoryMethod raised an exception',
+                error=sys.exc_info())
+            return default
+        m = getattr(p, self.factory, None)
+        if m:
             try:
                 # validate() can either raise Unauthorized or return 0 to
                 # mean unauthorized.
@@ -505,10 +508,6 @@
                     return m
             except Unauthorized:
                 pass
-            return default
-        except:
-            LOG('Types Tool', ERROR, '_queryFactoryMethod raised an exception',
-                error=sys.exc_info())
         return default
 
     security.declarePublic('isConstructionAllowed')




More information about the CMF-checkins mailing list