博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 异常处理 day7
阅读量:5303 次
发布时间:2019-06-14

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

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

语法:

以下为简单的try....except...else的语法:

try:
<语句>
#运行别的代码except
<名字>
<语句>
#如果在try部份引发了'name'异常except
<名字>
<数据>
:
<语句>
#如果引发了'name'异常,获得附加的数据else:
<语句>
#如果没有异常发生

1、 try except Exception, 这种是不管发生的何种错误,都能捕获, 缺点是不能细节错误的类型

2、 try except  ValueError as e, 这种是能捕获具体的类型错误,更好的细分提示信息。

举例:写一个除法的异常处理

import tracebacka = input('除数:')b = input('被除数:')try:    a = int(a)    b = int(b)    result = a/bexcept ZeroDivisionError:#可以对python常见对异常做处理,当出现异常是会捕捉第一个异常    print('除数不能为0')except Exception as e:  #Exception可以代表任意异常,异常都可以被捕捉到    print('错误信息',e)    # print(traceback.format_exc())  # 异常具体信息,可将此写到日志中    print('出异常了')else:    print('结算结果为:',result)finally:    print('程序已完成')#不管出错或没有出错,都会执行它,也不是必须写的

 

 

 执行结果:

(1)当被除数为0时:

 

(2)当除数不为整数时:

举例:将连接数据库的方法做异常处理

def op_mysql(sql, many_tag=False):    try:        conn = pymysql.connect(host='118.24.3.40', user='jxz', password='123456',                               db='jxz', port=3306, charset='utf8',                               autocommit=True)    except Exception as e:        print('连接出错了')    else:        cur = conn.cursor(pymysql.cursors.DictCursor)        try:            cur.execute(sql)        except Exception as e:            print('sql语句出错了')        else:            if many_tag:                result = cur.fetchall()            else:                result = cur.fetchone()            return result        finally:            cur.close()            conn.close()op_mysql('sssss')#此处执行的非正确sql语句,会抛异常sql语句出错了;若连接connect中信息错误会抛连接出错异常

 

转载于:https://www.cnblogs.com/candysalty/p/11175987.html

你可能感兴趣的文章
redirect的错误用法asp.net怎么使用自定义错误
查看>>
在MyEclipse下统计工程的代码(package、行数、类个数)
查看>>
Erlcron分析学习
查看>>
idea 快捷键
查看>>
SimpleDateFormate的使用
查看>>
菜鸟运维笔记:Windows上用Xshell管理你的云主机
查看>>
JavaScript中的this
查看>>
Activity生命周期
查看>>
jsp
查看>>
OpenNI / NITE的Stable版更新
查看>>
03 基本数据结构 - 栈
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
微信小程序之随笔
查看>>
每秒处理10万高并发订单的乐视集团支付系统架构分享
查看>>
Lua_02
查看>>
ios蓝牙详解
查看>>
安装MySQL5.7.18遇到的坑
查看>>
React Native在Android平台运行gif的解决方法转载
查看>>
Mybatis RowBounds 是逻辑分页
查看>>
hdu 3341(ac自动机+状态压缩)
查看>>