try:
    # Fragment kodu sprawdzany pod względem błędów
    pass
except:
    # Kod wykonujący się w przypadku wystąpienia błędu
    pass
else:
    # Kod wykonywany, jeśli nie zgłoszono błędu
    pass
finally:
    # to zawsze się wykona
    pass

def devide(a, b):
    try:
        a / b
    except Exception as zde:
        print(zde)
    else:
        print(f'Wynik dzielenia {a} / {b} wynosi {a / b}')
    finally:
        print(f'Wynik mnożenia {a} * {b} wynosi {a * b}')

devide(10, 20)
devide(10, 0)
devide(10, 4)

# 2.Napisz funkcję dodawanie,która przyjmuje dwa argumenty a i b oraz wyświetla
# ich umę.Co się wydarzy jeżeli jako argument podamy inta i stringa?

def dodaj(a, b):
    try:
        a + b
    except TypeError as e:
        print("Typy są różne")
    else:
        print(f'Wynik dodawania: {a + b}')

dodaj("5", 5)