python 的处理错误的方式:
1> 断言
assert condition 相当于 if not condition: crash program 断言设置的目的就是因为与其让程序晚点崩溃,不如直接设置错误情况,让它直接崩溃 >>> age = -1 >>> assert 0 < age < 100 AssertionError
2> 捕捉异常
try: x = input() y = input() print(x/y) except ZeroDivisionError: print("Division by Zero") 类似这样try/except形式就是来捕捉可能发生的异常错误,一旦出现ZeroDivisionError错误信息,则运行except ZeroDivisionError之后的代码 通过多个except来捕捉不同错误信息 def calc(expr): try: return eval(expr) except ZeroDivisionError: print("Divison by zero") except TypeError: print(‘This is not a number?‘) 一个块捕捉多个错误信息 def calc(expr): try: return eval(expr) except (ZeroDivisionError, TypeError): print("Input has some bugs") 打印错误信息 def calc(expr): try: return eval(expr) except (ZeroDivisionError, TypeError) as error: print(error) 对于其他错误信息处理 def calc(expr): try: return eval(expr) except ZeroDivisionError: print("Divison by zero") except: print(‘haha, something unknown happened!‘) else语句用于不出现错误信息 def calc(expr): try: return eval(expr) except ZeroDivisionError: print("Divison by zero") else: print("Oh, it goes well!") 此外还有finally语句,无论是否错误均会执行 实际应用:(输入表达式直到可以计算) while True: try: print(eval(input())) except: print(‘Please reinput until you input the correct expression!‘) else: break; finally: print(‘I love the world whatever!‘) #即使else中break也会执行finally
时间: 2024-12-08 00:43:54