Python学习--12 异常处理、调试
来源:互联网 发布:伴奏制作软件手机软件 编辑:程序博客网 时间:2024/06/05 19:29
异常捕获
语法格式:
try: passexcept xxx as e: passexcept xxx as e: pass...else: passfinally: pass
except用来捕获异常类型,常见的有ValueError、ZeroDivisionError,都继承基类BaseException。如果没有错误发生,则执行else。不管有没有错误发生,都会执行finally。
注意的是,只要一处except的捕获到了,不会继续捕获。
except xxx as e
里的as e
可以省略。
示例:
#!/usr/bin/python# coding: utf-8try: r = 100 / 0 print('result is %s'% r)except ValueError as e: print('ValueError: ', e)except ZeroDivisionError as e: print('ZeroDivisionError: ', e)except BaseException as e: print('BaseException: ', e)finally: pass
输出:
('ZeroDivisionError: ', ZeroDivisionError('integer division or modulo by zero',))
抛出异常
Python里使用raise语句抛出一个异常的实例:
#!/usr/bin/python# coding: utf-8def cal(m, n): if n == 0: raise ValueError('Illegal value: %d' % n) return m * ntry: r = cal(6, 0) print(r)except Exception as e: print(e)
输出:
Illegal value: 0
使用logging类记录错误
我们可以使用print()
来调试程序,但如果到处是print()
,想关闭又得一个个去修改。使用logging类,我们可以记录各种级别的错误,通过配置参数,可以控制显示哪些错误记录。
错误级别:
CRITICAL = 50FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = 20DEBUG = 10NOTSET = 0
对应的方法:
logging.critical()logging.fatal()logging.error()logging.warning()logging.warn()logging.info()logging.debug()
示例:
#!/usr/bin/python# coding: utf-8import logginglogging.basicConfig(level=logging.INFO)def cal(m, n): if n == 0: # raise ValueError('Illegal value: %d' % n) logging.info('Illegal value: %d' % n) return m * ntry: r = cal(6, 0) print(r)except Exception as e: print(e)
输出:
0INFO:root:Illegal value: 0
这里设置错误级别是INFO
,那么将会显示WARN
、ERROR
、FATAL
级别的错误,DEBUG
、NOTSET
则不会显示。
Python标准异常
0 0
- Python学习--12 异常处理、调试
- [Python学习笔记][第八章Python异常处理结构与程序调试]
- python中的异常处理和调试
- 7、Python 异常处理、pdb调试&logging
- python异常处理与调试,正则表达式
- Python(异常处理与程序调试)
- Python学习笔记--异常处理
- python学习之异常处理
- Python学习笔记--异常处理
- Python学习笔记--异常处理
- Python学习VII --- 异常处理
- Python学习笔记 异常处理
- python学习之异常处理
- Python异常处理学习笔记
- Python学习--异常处理,自定义异常类
- 学习python的第四十七天-第九章 异常处理与程序调试
- python学习——异常处理
- python(异常处理机制,学习笔记摘要)
- FFMpeg 小试
- 自定义控件(仿PopupWindow篇)
- [总结] Linux关闭防火墙命令
- [BZOJ3143][Hnoi2013]游走(概率期望+高斯消元)
- IdentityHashMap :key值可以重复的Map集合
- Python学习--12 异常处理、调试
- 用mybatis进行批量删除
- 升级Xcode8真机测试无法打印
- APNs消息推送开发流程图(证书创建)图解
- Solr-----12、Solr特殊字符处理
- 开启内核kdump
- oracle sequence的用法
- 字符移位
- BLOCK总结