讲解对象:Python异常处理 作者:融水公子 rsgz
1 通常使用try...except 块来处理任意异常 2 首先执行 try 子句 3 没有异常发生,except 子句 在 try 语句执行完毕后就被忽略 4 在 try 子句执行过程中发生了异常,那么该子句其余的部分就会被忽略 5 如果异常匹配于 except 关键字后面指定的异常类型,就执行对应的 except 子句。然后继续执行 try 语句之后的代码 6 如果发生了一个异常,在 except 子句中没有与之匹配的分支,它就会传递到上一级 try 语句中 7 最终仍找不到对应的处理语句,它就成为一个 未处理异常,终止程序运行,显示提示信息 8 一个空的 except 语句能捕获任何异常
实例: def get_number(): "Returns a float number" number = float(input("Enter a float number: ")) return number
while True: try: print(get_number()) except ValueError: print("You entered a wrong value.")
运行: 9 输入了一个合适的浮点值,解释器返回输出这个值 Enter a float number: 45.0 45.0
10 输入以逗号分隔的值,抛出 ValueError 异常,except 子句捕获之,并且打印出错误信息 Enter a float number: 24,0 You entered a wrong value. Enter a float number: Traceback (most recent call last): File "<stdin>", line 3, in <module> File "<stdin>", line 3, in get_number
11 Ctrl + C ,导致了 KeyboardInterrupt 异常发生,这个异常并未在 except 块中捕获,因此程序执行被中止 KeyboardInterrupt
12 一个空的 except 语句能捕获任何异常 >>> try: ... input() # 输入的时候按下 Ctrl + C 产生 KeyboardInterrupt ... except: ... print("Unknown Exception") ... Unknown Exception
|