捕捉所有异常
for i in range(10): try: input_number=input('write a number') if input_number=='q': break result=math.log(float(input_number)) print(result) except Exception: print('ValueError:input must > 0') break
捕捉指定异常
for i in range(10): try: input_number=input('write a number') if input_number=='q': break result=1/math.log(float(input_number)) print(result) except ValueError: print('ValueError:input must > 0') except ZeroDivisionError: print('不能除0')
自定义异常
class TestError(ValueError): passcur_list=['hello','world']while True: cur_input=input() if cur_input not in cur_list: raise TestError('Invalid input')
finally
无论是否异常,都会执行finally中的代码。
try: 1/0except: print('==0')finally: print('finally')