I need help how to fixing an error

import time

def raiseIndexError():
raise IndexError

def raiseZeroDivisionErrorWithMessage(message:str):
raise ZeroDivisionError(message)

def raiseThisException(exception):
raise exception

def catchAndReturnMessage(message:str, main_function:callable) → str:
try:
main_function()
except Exception as e:
return str(e)
else:
return message

def catchCleanupAndThrow(main_supplier:callable, index_supplier:callable, zero_supplier:callable, cleanup:callable) → str:

try:
    result = main_supplier()
except IndexError:
    result = index_supplier()
except ZeroDivisionError:
    result = zero_supplier()
finally:
    cleanup()

return result

class Timer:
def init(self, time_out:int):
self.time_out = time_out
self.start_time = None
self.end_time = None
def get_total_time(self):
if self.end_time == None:
return -1
return self.end_time - self.start_time
def enter(self):
self.start_time = int(round(time.time() * 1000))
return self
def exit(self, exc_type, exc_value, traceback):
self.end_time = time.time()
if self.get_total_time() > self.time_out:
raise TimeoutError