My_Project

资料整理


Python-异常处理|程序调试

<p>1、异常处理语句</p> <pre><code>1.1、try...except...else 说明 (1)把可能产生的异常代码放在try语句块中,把处理结果放在except语句块中。 (2)这样,当try语句块中的代码出现错误时。就会执行except语句块中的代码。 (3)如果try语句块的代码没有错误,那么except语句块不会执行。 语法格式 try: 可能产生异常的代码块... except [ExceptionName [as e]]: 处理异常的代码块...(可以输出固定提示信息。也可以通过别名输出异常的具体内容) else: 指定当try没有异常时要执行的语句块... 参数说明 ExceptionName [as e]:可选参数。用于指定要捕获的异常。(不选择则表示捕获全部异常) 其中ExceptionName表示要捕获的异常名称。as e表示给当前的异常指定一个别名。通过该别名可以记录异常的具体内容。 1.2、try...except...else 说明 把可能产生的异常代码放在try语句块中。把处理结果放在except语句块中。 这样。当try语句块中的代码出现错误时。就会执行except语句块中的代码。 如果try语句块的代码没有错误。那么except语句块不会执行。 1.3、try...except...finally 说明 通常。无论程序中有无异常。finally代码块都必须要被执行。 如果分配了有限的资源(如打开文件)。则应该将释放这些资源的代码放置在finally代码块中。 1.4、raise语句抛出异常 说明 如果某个函数可能会产生异常。但不想子啊当前函数中处理这个异常。则可以使用raise语句在函数中抛出异常。 语法格式 raise [ExceptionName [(reason)]] 参数说明: [ExceptionName [(reason)]]:可选参数。用于指定要抛出的异常以及异常信息的相关描述(不选择则表示把当前错误原样抛出)。 其中reason也可以省略。省略后表示在抛出异常时不附带任何描述信息。 1.5、pass语句忽略异常 1.6、assert语句调试程序 说明 (1)assert一般用于对程序某个时刻必须满足的条件进行验证。 (2)assert语句只在调试阶段有效。可以通过在执行python命令时加入-O(大写)参数来关闭assert语句。 案例如下: E: cd E:\program\python\Code python -O division_apple_bug.py 语法格式 assert expression [。reason] 参数说明: expression:条件表达式。为真则什么都不做;为假则抛出AssertionError异常。 reason:可选参数。用于对判断条件进行描述</code></pre> <p>2、Python常见异常</p> <pre><code>NameError 尝试访问一个没有声明的变量引起的错误。 IndexError 索引超出序列范围引起的错误。 ValueError 传入的值错误。 KeyError 请求一个不存在的字典关键字引发的错误。 AssertionError 验证错误。 IOError 输出/输入错误(例如:读取的文件不存在)。 ImportError 当import无法找到模块或from无法在模块中找到相应的名称时引发的错误。 AttributeError 尝试访问未知的对象属性引发的错误。 TypeError 类型不合适引发的错误。 MemoryError 内存不足引发的错误。 ZeroDivisionError 除数为0引发的错误。 IndentationError 缩进错误。 案例 for i in range(10): if i%2 == 0: #报错:IndentationError: expected an indented block //缺少一个块没写 #改正: for i in range(10): if i%2 == 0: pass</code></pre>

页面列表

ITEM_HTML