Python--异常处理和断言
try关键字,定义获取程序错误
except关键字,出现异常错误执行里面的代码
Exception定义错误类,Exception能获取到所有类型的错误错误,as创建错误对象名称,自动获取错误信息
#!/usr/bin/env python
# -*- coding:utf8 -*-
"""获取程序错误信息"""
try: #try关键字定义获取程序错误
#代码块
a = str(字符串)
print(a)
except Exception as e: #except关键字出现异常错误执行里面的代码,Exception定义错误类,as创建错误对象自动获取错误信息
print(e) #打印错误对象输出错误信息
# 输出
# name '字符串' is not defined
python中的异常种类非常多,每个异常专门用于处理获取某一项异常
常见错误类型
AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的
我们在以后记录错误时,要想记录对应的错误信息可以用以下办法
先用对应的错误类型来获取,如果都不是前面对应的错误类型,最后用Exception来获取
#!/usr/bin/env python
# -*- coding:utf8 -*-
"""获取程序错误信息"""
try:
a = str(字符串)
print(a)
except AttributeError as c: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(c)
except IOError as d: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(d)
except ImportError as e: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(e)
except Exception as f: #都不是上面对应的错误,用Exception来不管是上面错误都获取到
print(f)
# 输出
# name '字符串' is not defined
else主代码块执行完,执行该块
finally无论异常与否,最终执行该块
#!/usr/bin/env python
# -*- coding:utf8 -*-
try:
#主代码块
a = str(hjhb)
except Exception as e:
#代码错误执行模块
print(e)
else:
print("主代码块执行完,执行该块")
finally:
print("无论异常与否,最终执行该块")
主动触发异常,也就是没有错误,主动触发一个错误
raise关键字,主动触发一个错误
#!/usr/bin/env python
# -*- coding:utf8 -*-
try:
#主代码块
a = str("")
raise Exception('错误了。。。')
except Exception as e:
#代码错误执行模块
print(e)
# 输出
# 错误了。。。
Python--异常处理和断言的更多相关文章
- python异常处理与断言以及日志模块
python异常处理与断言 目录: 1.异常处理 2.断言(assert) 3.日志模块(logging) 4.修改之前的车票信息查询,把日志模块.异常处理加进去 1.异常处理 代码如下: 语法: t ...
- python异常处理和断言
http://blog.csdn.net/pipisorry/article/details/21841883 关于异常处理有必要么的讨论 最重要的问题是你在开发过程中隐藏了bug,如果当时你没加这个 ...
- (69)Python异常处理与断言
http://blog.csdn.net/pipisorry/article/details/21841883 断言 断言是一句必须等价于布尔真的判定;此外,发生异常也意味着表达式为假.这些工作类似于 ...
- python异常处理、断言
异常处理基本语法 捕获异常 try: 语句1 语句2 ... except ERRNAME as e: print(e) #尝试执行语句,捕获到ERRNAME异常时打印异常信息e 捕获多个异常 try ...
- 14、python异常处理及断言
前言:本文主要介绍python中异常的处理及断言,包括异常类型.异常捕获.主动跑出异常和断言. 一.异常类型介绍 什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,会影响程序的正常执行,一般 ...
- [Python学习笔记][第八章Python异常处理结构与程序调试]
1/30 第八章Python异常处理结构与程序调试 异常处理 try-except结构 try: try块 except Exception: except块 try-except-else结构 tr ...
- python异常处理try,except,else,finally,raise
先看下else的使用: try: ... exception: ... else: ... 只有在try中没有发生任何异常,所有代码完全成功的情况下才会转入else 再看下finally: final ...
- Python 异常处理
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. 断言 ...
- Python异常处理总结
一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...
- Python异常处理回顾与总结
1 引言 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这种错误在 ...
随机推荐
- Python Django 之 登录页面
一.创建project与app 1.创建project与app django-admin startproject mysite_login python manage.py startapp log ...
- Docker容器使用jenkins部署web项目--总结(二)
(1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat. 新建maven项目,添加findbugs plugin. 使用docker启动jenkins,go ...
- 异常处理机制中的return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...
- GDI中StretchBlt或Blt缩放图片失真问题
在用Scrollview控件的缩放图片时,严重失真: 解决方法:dc.SetStretchBltMode(COLORONCOLOR). 参考文章:https://blog.csdn.net/m3728 ...
- 查看linux 内核版本信息
uname -r2.6.32-696.el6.x86_64uname -ix86_64
- Spring-data-JPA详细介绍
Spring-data-JPA学习: 1. https://blog.csdn.net/liujianwd/article/details/75411009 2.http://www.cnblogs. ...
- UNICODE_STRING(用户模式 内核模式)
UNICODE_STRING结构: typedef struct _UNICODE_STRING { USHORT Length; ...
- Android开发 --代码布局
Android开发 --代码布局 在线性布局LinearLayout里加入view比较简单,因为属性比较少,布局简单 示例,加入一个TextView LinearLayout layout = (Li ...
- GD2模块-图像处理
GD2模块-图像处理 1.图像处理模块的主要功能: a) 验证码 b) 加盖水印 c) 缩略图 d) 帖子图片签名 e) 在线LOGO制作 2确认PHP是否支持图像处理 检测PHPINFO文件中是否存 ...
- exists 的使用
SELECT u.login_id, ( from mdp_user_login_info muli where muli.BIZ_SYS = 'admin' and u.login_id=muli. ...