码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记(十五)异常处理

时间:2018-05-15 19:33:17      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:strip()   捕捉异常   字符   使用   final   字符串   检测   rod   游标   

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

例如,我们定义一个函数

first = input(请输入除数:)
second = input(请输入被除数:)
first = int(first)
second = int(second)
res = first/second
li = [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/second
except 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/second
except 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

python学习笔记(十五)异常处理

标签:strip()   捕捉异常   字符   使用   final   字符串   检测   rod   游标   

原文地址:https://www.cnblogs.com/mululu/p/9042372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!