博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记(十五)异常处理
阅读量:4911 次
发布时间:2019-06-11

本文共 1709 字,大约阅读时间需要 5 分钟。

python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性 。

例如,我们定义一个函数

first = input('请输入除数:')second = input('请输入被除数:')first = int(first)second = int(second)res = first/secondli = [1,2,3,4]print(li[5])

如果除数second=0,那代码就会抛异常,ZeroDivisionError: division by zero,除数是不能为0的。

如果除数输入是字符串,那么代码也会抛异常,TypeError: unsupported operand type(s) for /: 'int' and 'str'

这时就需要捕捉异常了,当除数为0时提示用户所传参数不对。异常处理使用的是try ....  except.....关键字。

first = input('请输入除数:')second = input('请输入被除数:')try:    first = int(first)    second = int(second)    res = first/secondexcept ValueError as e: #这个e代表错误信息,如果上面的两行代码出现了 ValueError这个错    print(e)    print('请输入整数')except ZeroDivisionError as e:    print(e)    print('除数不能为0')

当异常种类很多的时候,我们可以统一写为except Exception as e:

first = input('请输入除数:')second = input('请输入被除数:')try:    first = int(first)    second = int(second)    res = first/secondexcept Exception as e:   #上面代码出异常的时候走这里,    print(e)    print('出错了。。。。。')
else: #没有出错,也不是必须写的    print('并没有出错')#这个是没有异常的时候走    print(res) finally:#不管出错或者没有出错都会执行它,也不是必须写的。    print('我是finally')

现在我们完善一下操作数据库的函数

1.数据库在连接不成功时会抛异常

2.在执行sql的时候,如果sql语句写的不正确也会抛异常

def my_db2(sql):    try:        coon = pymysql.connect( **MYSQL_INFO )    except Exception as res:        print('数据库连接失败了')        return '数据库连接失败了'    cur = coon.cursor()  # 建立游标    try:        cur.execute(sql)#执行sql    except Exception as res:        print('sql出错,sql是%s'%sql)        return 'sql出错'    else:        if sql.strip()[:6].upper()=='SELECT':            res =  cur.fetchall()        else:            coon.commit()            res = 'ok'    finally:        cur.close()        coon.close()    return res

转载于:https://www.cnblogs.com/mululu/p/9042372.html

你可能感兴趣的文章
Python爬虫基础--分布式爬取贝壳网房屋信息(Client)
查看>>
jmeter(十二)关联之正则表达式提取器
查看>>
win7系统复制文件到u盘提示文件过大怎么办
查看>>
The path "" is not valid path to the gcc binary.
查看>>
KMP算法
查看>>
NBUT [1369] A Breaking Computer
查看>>
SonarQube4.4+Jenkins进行代码检查实例之三-单元測试分析
查看>>
【转载】appium自动化环境搭建
查看>>
jsp编译、执行过程
查看>>
NOIP2017游记
查看>>
关于js的在ie和Firefox的差别
查看>>
node-webkit无边框窗口用纯JS实现拖动改变大小
查看>>
Extjs grid combo
查看>>
获取<考试>博文密码!o(*≧▽≦)ツ
查看>>
学习进度条
查看>>
leetcode-Subsets II-90
查看>>
In 和Exists
查看>>
shell 命令下载软件 安装软件
查看>>
LCA的五种解法
查看>>
Python 拓展之详解深拷贝和浅拷贝
查看>>