Python-错误与异常
异常捕获
基本理论
1、python 的错误捕获使用 try/except 语法。
2、工作方式如下:
首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。
如果没有异常发生,忽略 except 子句,try 子句执行后结束。
如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。
如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。
3、一个 try 语句可能包含多个 except 子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
4、处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
代码示例
数值错误:
1 | while True: |
try/except…else
try/except…else 语法在 try/catch 的基础上增加了当没有错误时执行 else 语句的功能。
1 | for arg in sys.argv[1:]: |
try-finally 语句
try-finally 语句和 js、c#一样,finally 的语句总是会被执行,无论异常与否。
抛出异常
基本理论
Python 使用 raise 语句抛出一个指定的异常。
语法格式如下:
1 | raise [Exception [, args [, traceback]]] |
代码示例
1 | x = 10 |
用户自定义异常
基本理论
可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承。
代码示例
1 | class MyError(Exception): |