Ostatnio programując w C++ walczyłem z polimorficznymi wyjątkami. Sytuacja zgrała się z trafieniem po drodze na lekturę 
Thinking in Python, gdzie zauważyłem bardzo ciekawe podejście autora, który czasami pisze "w C++ musiałeś to i to a w Pythonie - po prostu działa". Szalenie mi to podejście odpowiada :) Tak więc w myśl tej idei postanowiłem sprawdzić jak ma się polimorfizm wyjątków w Pythonie i czy dużo więcej się namęcze. Po raz kolejny :) punkt za prostotę dla Pythona - po prostu działa :]
class MyException(Exception):
    def __init__(self, message):
        self.message = message
    def __str__(self):
        return repr(self.message)
class MySocketException(MyException):
    pass
class MyOtherException(MyException):
    pass
def f():
    raise MyOtherException("Moj wyjatek: Wystapil straszny blad !")
if __name__ == '__main__':
try:
    f()
except MyException, e:
    print e
Czy to nie jest piękne :)
 
No comments:
Post a Comment