try:
print(x)
except:
print("exception occured")
can do different types of exception
try:
c = a // b
except ZeroDivisionError:
print("Dividing by zero")
except:
print("Some other problem happened")
Can add else for if no exceptions
try:
print(x)
except:
print("Exception happend")
else:
print("No exception happened")
Can add "finally" black to always execute regardly of type of exception or if it just did else
try:
print(x)
except:
print("Exception happened")
else:
print("No exception happened")
finally:
print("This prints if an exception happens or not")
We can manually raise exceptions
raise Exception
raise ZeroDivisionError
assert here too: assert(False) raises AssertionError
"with" function easier to use than try except released objects afterwards, so need to worry less about clean up if eg opening files