Python笔记
来源:互联网 发布:网络支付公司 编辑:程序博客网 时间:2024/06/18 09:20
Python中try except处理程序异常
1.try … except…:
try: 语句1 语句2 . . 语句Nexcept ...: do something...
try中代码块执行,如果存在错误,就会抛出异常,然后执行except中的代码,否则,跳过except块代码。
- 无参数的except
try: ...except: ...
无参数的except适用于任何异常类型
- 捕获所有异常对象
try: ...except Exception as e: print(Exception,',',e)
获取整个异常对象
- 采用traceback模块查看异常
相比于上面获取所有异常的方法,traceback会输出出现错误的行数,便于调试
import tracebacktry: ...except: traceback.print_exc()
- sys模块回溯最后的异常
import systry: ...except: info = sys.exc_info() print(info[0],',',info[1])
- 将异常信息保存在日志文本
将traceback.print_exc()打印在屏幕的信息保存在一个日志文件中
import tracebacktry: ...except: f = open("c:\\log.txt",'a') traceback.print_exc(file = f) # 等价于:traceback.print_exc(file = open('c:\\log.txt'.'a')) f.flush() f.close()
2.try … except … else
当没有发生异常时,else中的语句将会被执行
try: a = 1except Exception as e: print(e)else: print("No error")# 最后结果为:No Error
3.try … finally
无论是否发生,在程序结束前,finally中的语句都会被执行。
try: a = 1finally: print('不用看,我总会被打印的~') # 结果为:不用看,我总会被打印的~
4.自定义异常类
raise引发一个异常
一个异常是一个类,即类Exception的一个子类
class MyException(Exception): passnums = [1,2,3,4]for num in nums: if num == 3: raise MyException(num)'''结果为: Traceback (most recent call last): File "<pyshell#91>", line 3, in <module> raise MyException(num)MyException: 3'''
即使没有定义MyException的行为(只使用到pass),也可以通过继承父类Exception在抛出异常时输出错误提示。
也可以访问异常对象本身,并输出,例:
raise MyException(‘Hello’)
5.Python所有的标准异常类
阅读全文
0 0
- Python笔记
- python笔记
- python笔记
- python笔记
- python笔记
- PYTHON笔记
- python笔记
- python笔记
- python笔记
- Python笔记
- Python笔记
- Python笔记
- PYTHON笔记
- Python笔记
- python笔记-------------
- python笔记
- Python笔记
- python 笔记
- Spring技术内幕——深入解析Spring架构与设计原理(五)Spring与远端调用
- 链式二叉树-递归操作
- 使用Kettle工具通过执行SQL脚本的形式来实现导入到MySQL数据库
- RxLifecycle防内存泄漏分析
- BBB玩机(二)编译环境设置
- Python笔记
- gzip:stdin:not in gzip format
- [bzoj4936]Match
- HDU-1754 I Hate It(线段树求区间最值)
- Android RecyclerView 使用完全解析 体验艺术般的控件
- 【UESTC 982】质因子分解
- POJ 3259 Wormholes spfa
- 笨办法学 Python · 续 练习 51:`lessweb`
- Spring技术内幕——深入解析Spring架构与设计原理(六)Spring ACEGI