Give all except statements a checked for exception

Signed-off-by: Dan Yeaw <dan@yeaw.me>
This commit is contained in:
Dan Yeaw 2019-11-10 15:13:59 -05:00
parent da1dbddaa4
commit 590decf1b2
No known key found for this signature in database
GPG Key ID: 77A923EF537B61A4
8 changed files with 41 additions and 61 deletions

View File

@ -3,4 +3,4 @@ ignore = E203, E266, E501, W503, F403, F401
max-line-length = 88
max-complexity = 18
select = B,C,E,F,W,T4,B9
exclude = uml2.py
exclude = uml2.py,msgfmt.py,pygettext.py

View File

@ -5,6 +5,7 @@ representation of a UML diagram. Diagrams can be visualized and edited.
The DiagramCanvas class extends the gaphas.Canvas class.
"""
import logging
import uuid
import gaphas
@ -12,6 +13,8 @@ import gaphas
from gaphor.UML.properties import umlproperty
from gaphor.UML.uml2 import Namespace, PackageableElement
log = logging.getLogger(__name__)
class DiagramCanvas(gaphas.Canvas):
"""DiagramCanvas extends the gaphas.Canvas class. Updates to the canvas
@ -108,7 +111,7 @@ class Diagram(Namespace, PackageableElement):
for item in self.canvas.get_all_items():
try:
item.unlink()
except:
pass
except AttributeError:
log.exception(f"Failed to unlink {item}")
super().unlink()

View File

@ -5,20 +5,23 @@ Base class for UML model elements.
from __future__ import annotations
import logging
import uuid
from typing import TYPE_CHECKING, Optional, Sequence, Type, Union
from gaphor.UML.elementdispatcher import EventWatcher
from gaphor.UML.properties import relation_many, relation_one, umlproperty
__all__ = ["Element"]
if TYPE_CHECKING:
from gaphor.UML.elementfactory import ElementFactory # noqa
from gaphor.UML.presentation import Presentation # noqa
__all__ = ["Element"]
log = logging.getLogger(__name__)
class UnlinkEvent:
"""Used to tell event handlers this element should be unlinked.
"""
@ -101,7 +104,7 @@ class Element:
try:
prop = getattr(type(self), name)
except AttributeError:
raise AttributeError(f"'{type(self).__name__}' has no property '{name}'")
log.exception(f"'{type(self).__name__}' has no property '{name}'")
else:
prop.load(self, value)

View File

@ -463,8 +463,8 @@ class association(umlproperty[T]):
try:
delattr(obj, self._name)
except:
pass
except AttributeError:
log.exception(f"Delete attribute failed for {obj} with {self._name}")
else:
if do_notify:
self.handle(AssociationSet(obj, self, value, None))
@ -480,8 +480,8 @@ class association(umlproperty[T]):
items = c.items
try:
items.remove(value)
except:
pass
except ValueError:
log.exception(f"Removing {value} from list {items} failed")
else:
if do_notify:
self.handle(AssociationDeleted(obj, self, value))
@ -548,7 +548,7 @@ class associationstub(umlproperty[T]):
try:
values = getattr(obj, self._name)
except AttributeError:
pass
log.exception(f"Failed to unlink {self._name} from {obj}")
else:
for value in set(values):
self.association.__delete__(value, obj)

View File

@ -128,7 +128,7 @@ class GIdleThread:
except StopIteration:
self._idle_id = 0
return False
except:
except QueueEmpty:
self._exc_info = sys.exc_info()
self._idle_id = 0
return False

View File

@ -58,13 +58,13 @@ class base:
def __getitem__(self, key):
try:
return self.values[key]
except:
except KeyError:
return self.references[key]
def get(self, key):
try:
return self.__getitem__(key)
except:
except KeyError:
return None

View File

@ -234,48 +234,26 @@ def load_elements_generator(elements, factory, gaphor_version):
# load attributes and references:
for name, value in list(elem.values.items()):
try:
elem.element.load(name, value)
except:
log.error(
"Loading value %s (%s) for element %s failed."
% (name, value, elem.element)
)
raise
elem.element.load(name, value)
for name, refids in list(elem.references.items()):
if isinstance(refids, list):
for refid in refids:
try:
ref = elements[refid]
except:
raise ValueError(
"Invalid ID for reference (%s) for element %s.%s"
% (refid, elem.type, name)
except ValueError:
log.exception(
f"Invalid ID for reference ({refid}) for element {elem.type}.{name}"
)
else:
try:
elem.element.load(name, ref.element)
except:
log.error(
"Loading %s.%s with value %s failed"
% (type(elem.element).__name__, name, ref.element.id)
)
raise
elem.element.load(name, ref.element)
else:
try:
ref = elements[refids]
except:
raise ValueError(f"Invalid ID for reference ({refids})")
except ValueError:
log.exception(f"Invalid ID for reference ({refids})")
else:
try:
elem.element.load(name, ref.element)
except:
log.error(
"Loading %s.%s with value %s failed"
% (type(elem.element).__name__, name, ref.element.id)
)
raise
elem.element.load(name, ref.element)
# Before version 0.7.2 there was only decision node (no merge nodes).
# This node could have many incoming and outgoing flows (edges).
@ -333,8 +311,8 @@ def load_generator(filename, factory):
elements = loader.elements
gaphor_version = loader.gaphor_version
except Exception:
log.error("File could no be parsed", exc_info=True)
except OSError:
log.exception("File could no be parsed")
raise
if version_lower_than(gaphor_version, (0, 17, 0)):

View File

@ -13,7 +13,7 @@ from gaphor import UML
from gaphor.abc import ActionProvider, Service
from gaphor.core import action, event_handler, translate
from gaphor.misc.errorhandler import error_handler
from gaphor.misc.gidlethread import GIdleThread, Queue
from gaphor.misc.gidlethread import GIdleThread, Queue, QueueEmpty, QueueFull
from gaphor.misc.xmlwriter import XMLWriter
from gaphor.storage import storage, verify
from gaphor.ui.event import FileLoaded, FileSaved, WindowClosed
@ -69,17 +69,13 @@ class FileManager(Service, ActionProvider):
queue = Queue()
status_window: Optional[StatusWindow]
try:
main_window = self.main_window
status_window = StatusWindow(
translate("Loading..."),
translate("Loading model from %s") % filename,
parent=main_window.window,
queue=queue,
)
except:
log.warning("Could not create status window, proceding without.")
status_window = None
main_window = self.main_window
status_window = StatusWindow(
translate("Loading..."),
translate(f"Loading model from {filename}"),
parent=main_window.window,
queue=queue,
)
try:
loader = storage.load_generator(
@ -95,7 +91,7 @@ class FileManager(Service, ActionProvider):
self.filename = filename
self.event_manager.handle(FileLoaded(self, filename))
except:
except (QueueEmpty, QueueFull):
error_handler(
message=translate("Error while loading model from file %s") % filename
)
@ -175,7 +171,7 @@ class FileManager(Service, ActionProvider):
self.filename = filename
self.event_manager.handle(FileSaved(self, filename))
except:
except (OSError, QueueEmpty, QueueFull):
error_handler(
message=translate("Error while saving model to file %s") % filename
)