different errors to raise in python