异常
异常:即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
1. 语法
try:(在关键字try和关键字except之间的语句)
语句体:
except 异常类型:如果没有异常发生,忽略except子句,try子句执行后结束。如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
处理程序将只针对对应的try子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
处理语句:
2. finally语句:
3. >>> def divide(x, y):
4. try:
5. result = x / y
6. except ZeroDivisionError:
7. print("divisionby zero!")
8. else:
9. print("resultis", result)
10. finally:
11. print("executingfinally clause")
12.
13. >>> divide(2, 1)
14. result is 2.0
15. executing finally clause
16. >>> divide(2, 0)
17. division by zero!
18. executing finally clause
19. >>> divide("2", "1")
20. executing finally clause
21. Traceback (most recent call last):
22. File "<stdin>", line 1, in ?
23. File "<stdin>", line 3, in divide
24. TypeError: unsupported operand type(s) for /: 'str' and 'str'
3.自定义异常类通常要继承Exception基类。要用raise引用自定义的异常。raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。
如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。
983

被折叠的 条评论
为什么被折叠?



