diff options
author | Marion <marion.zepf@gmail.com> | 2013-09-01 15:37:05 (GMT) |
---|---|---|
committer | Marion <marion.zepf@gmail.com> | 2013-09-01 15:37:05 (GMT) |
commit | f6b5f9c0fad22af600977aead337e8fc1abd124b (patch) | |
tree | 67685be5e07d636c0a2e1227632d53ec844c6537 /TurtleArt/talogo.py | |
parent | dad05e1df940e9f09d8a29fe4ec3ee2578f0acd1 (diff) |
update Primitive of 'square root' block
Diffstat (limited to 'TurtleArt/talogo.py')
-rw-r--r-- | TurtleArt/talogo.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index 7480ab9..35fe04a 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -83,6 +83,20 @@ class logoerror(Exception): return str(self.value) +class NegativeRootError(BaseException): + """ Similar to the ZeroDivisionError, this error is raised at runtime + when trying to computer the square root of a negative number. """ + + DEFAULT_MESSAGE = 'square root of negative number' + + def __init__(self, neg_value=None, message=DEFAULT_MESSAGE): + self.neg_value = neg_value + self.message = message + + def __str__(self): + return str(self.message) + + class HiddenBlock(Block): def __init__(self, name, value=None): @@ -543,6 +557,8 @@ class LogoCode: _("as input"))) except ZeroDivisionError: raise logoerror("#zerodivide") + except NegativeRootError: + raise logoerror("#negroot") else: try: self.step.next() |