Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/talogo.py
diff options
context:
space:
mode:
authorMarion <marion.zepf@gmail.com>2013-09-01 15:37:05 (GMT)
committer Marion <marion.zepf@gmail.com>2013-09-01 15:37:05 (GMT)
commitf6b5f9c0fad22af600977aead337e8fc1abd124b (patch)
tree67685be5e07d636c0a2e1227632d53ec844c6537 /TurtleArt/talogo.py
parentdad05e1df940e9f09d8a29fe4ec3ee2578f0acd1 (diff)
update Primitive of 'square root' block
Diffstat (limited to 'TurtleArt/talogo.py')
-rw-r--r--TurtleArt/talogo.py16
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()