Reference no: EM132291979
Complete the Error, SyntaxError, and ZeroDivisionError classes such that they create the correct messages when called.
- The SyntaxError and ZeroDivisionError classes inherit from the Error class and add functionality that is unique to those particular errors. Their code is partially implemented for you.
- The add_code method adds a new helpful message to your error, while the write method should print the output that you see when an error is raised.
- You can access the parent class methods using the super() function
class Error:
"""
>>> err1 = Error(12, "error.py")
>>> err1.write()
'error.py:12'
"""
def __init__(self, line, file):
"*** YOUR CODE HERE ***"
def write(self):
return self.file + ':' + str(self.line)
class SyntaxError(Error):
"""
>>> err1 = SyntaxError(17, "HW10.py")
>>> err1.write()
HW10.py:17 SyntaxError : Invalid syntax
>>> err1.add_code(4, "EOL while scanning string literal")
>>> err2 = SyntaxError(18, "HW10.py", 4)
>>> err2.write()
HW10.py:18 SyntaxError : EOL while scanning string literal
"""
type = 'SyntaxError'
msgs = {0 : "Invalid syntax", 1: "Unmatched parentheses", 2: "Incorrect indentation", 3: "missing colon"}
def __init__(self, line, file, code=0):
"*** YOUR CODE HERE ***"
def write(self):
end = self.type + ' : ' + self.message
"*** YOUR CODE HERE ***"
def add_code(self, code, msg):
"*** YOUR CODE HERE ***"
class ZeroDivisionError(Error):
"""
>>> err1 = ZeroDivisionError(273, "HW10.py")
>>> err1.write()
HW10.py:273 ZeroDivisionError : division by zero
"""
type = 'ZeroDivisionError'
def __init__(self, line, file, message='division by zero'):
"*** YOUR CODE HERE ***"
def write(self):
end = self.type + ' : ' + self.message
"*** YOUR CODE HERE ***"