python-异常处理总结
一、异常处理
在程序运行的过程中,总会遇到各种各样的错误。程序一出错就停止运行了,下面的代码就不能运行了;这时候就需要捕捉异常,通过捕捉异常,再去做对应的处理。
e.g:
info = {
"id":1,
"name":"小黑",
"sex":"nan"
}
choice = input("请输入你要查看的属性:")
print(info[choice]()) #非函数不能调用
像这种情况我们就需要捕捉异常;捕捉异常使用try....except....关键字,就是你在写代码的时候,先要考虑到这段代码可能会出现什么样的错误,然后做对应的处理,try里面是可能出错的代码,except里面是出错了要执行的代码;下面是我们改进后的代码:
try :
print(info[choice]())
# print(type(info[choice]))
except Exception as e: #除去,如果出异常再怎么处理
#except Exception ,e: python2
#Exception能扑捉到所有的异常
print('出错了,错误信息是:',e) #e代表异常信息
eg2: 链接数据库
def op_mysql(sql):
try : #可能出错的代码
coon = pymysql.connect(host=MYSQL_HOST,user=MYSQL_USER,passwd=MYSQL_PASSWD,port=MYSQL_PORT,db=MYSQL_DB,charset='utf8') except Exception as e: #出错后执行的代码
raise e
else:
cur = coon.cursor(cursor=pymysql.cursors.DictCursor)#不出错执行
try:
cur.execute(sql)
except Exception as e:
raise e
else:
if sql.startswith('select'):
res =cur.fetchone()
print(res)
else:
coon.commit()
res =88
return res
finally: #不管成功失败都要执行
cur.close()
coon.close()
二、常见的一些异常信息:
如果自己能明确错误类型是那种错误就执行 except 具体错误 as e;如果不明确是那种错误就用Exception它会捕捉所有的错误
AttributeError: 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
IOError:输入/输出异常,一般是无法打开文件
def is_correct_sql(sql):
#select update insert delete truncate drop create alter
sql_start = ['select','update','insert','delete','truncate','drop','create','alter']
for start in sql_start:
if sql.startswith(start):
return True
else:
raise TypeError #'SQL错误!!! '
#主动抛出异常,
is_correct_sql('dddd')
python-异常处理总结的更多相关文章
- python异常处理(基础)
之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充. http://www.cnblogs.com/fnng/archive/2013/0 ...
- Python异常处理 分类: python Raspberry Pi 服务器搭建 2015-04-01 13:22 172人阅读 评论(0) 收藏
一个程序要保持稳定运行必须要有异常处理,本文将简单介绍Python中的try-except..异常处理语句的使用. 该种异常处理语法的规则是: 执行try下的语句,如果引发异常,则执行过程会跳到第一个 ...
- Python 异常处理--raise函数用法
raise语句手工引发一个异常: "raise" [expression ["," expression ["," expression]] ...
- [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异常处理总结
一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...
- python异常处理与断言以及日志模块
python异常处理与断言 目录: 1.异常处理 2.断言(assert) 3.日志模块(logging) 4.修改之前的车票信息查询,把日志模块.异常处理加进去 1.异常处理 代码如下: 语法: t ...
- python 异常处理函数--raise
Python 异常处理--raise函数用法 在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称.异常名称标识出具体的类: Python异常处理是那些类的对象 ...
随机推荐
- 什么情况下会出现undefined
1.函数定义形参不传值,2.预解释,只声明不定义时输出变量3.对象取属性值,属性值不存在
- 解决HTML乱码
转自:https://blog.csdn.net/yuxisanno139/article/details/80675426
- linux MySQL 初始化数据库
#创建数据目录并且初始化 /bin/mysql_install_db –user=mysql
- nologin - 阻止非root用户登录系统
描述 DESCRIPTION 如果存在文件 /etc/nologin, login(1) 将只允许root访问.其它用户的登录会遭到拒绝并且显示该文件中的内容给他们. 文件 FILES /etc/no ...
- 你真的懂git rebase吗?
前段时间由于某种原因,开始接手开发公司前端Vue搭建的项目 该前端项目采用的是基于git rebase的形式去合并代码,而我之前使用git一直都是采用merge的形式合并分支代码,对于rebase一概 ...
- kubernetes之三 使用kubectl在k8s上部署应用
在上一篇中,我们学习了使用minikube来搭建k8s集群.k8s集群启动后,就可以在上面部署应用了.本篇,我们就来学习如何使用kubectl在k8s上部署应用. 学习之前,可以先从下面这篇博客上了解 ...
- DevExpress v19.1新版亮点——WinForms篇(一)
行业领先的.NET界面控件DevExpress v19.1终于正式发布,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WinForms v19.1中新增的一些控 ...
- TLS漏洞:超过50万个电子邮件服务器容易受黑客攻击,太可怕了
2019年在流行的开源Exim电子邮件服务器软件中发现了一个关键的远程执行代码漏洞,至少有超过50万个电子邮件服务器容易受到远程黑客攻击.Exim是一种广泛使用的开源邮件传输代理(MTA)软件,为类似 ...
- Chrome设置--disable-web-security解决跨域问题
这里介绍的是--disable-web-security参数.这个参数可以降低chrome浏览器的安全性,禁用同源策略,利于开发人员本地调试. (1)新建一个chrome快捷方式,右键“属性”,“快捷 ...
- Ldap 从入门到放弃(二)
OpenLDAP 服务器安装与配置 本文内容是自己通过官网文档.网络和相关书籍学习和理解并整理成文档,其中有错误或者疑问请在文章下方留言. 一.概述 本文以Centos 6.8(64bit)为例介绍 ...