写代码的时候会遇到各种各样的异常,那么代码就不会继续往下走了。比如说10除以0是错误的,因为除数不能为零学会捕捉异常,在异常出现的时候我们要做什么操作。

捕捉异常

d={}                #例如定义字典
try:
    # d['name']     #只给一个keys
    c = 10 / 0      #例如除数为0
except Exception as e:           #Exception可以捕捉任何异常(有很多可以精确定义各种异常的关键词)
    print('出现异常了',e)
else:                           #没有出现异常继续运行
    print('没出现异常正常运行的程序')
finally:
    print('有没有出现异常都走这')

在写代码的时候,需要考虑这段代码可能会出现什么样的错误,然后做对应的处理。

  try:里面就是包含你做处理的代码,

  except:里面就是出了某种错误后,怎么去处理。

  e:代表错误信息

  finally:不管是否有异常都会执行Finally后的程序

  else:如果出异常就执行except后的程序,不出异常就走else后程序

价格校验中异常捕捉

def is_price(s):
    try:
        price=float(s)
    except Exception as e:
        print('价格出错')
        return False
    return price

连接数据库函数(异常捕捉

首先考虑在操作数据库的过程中会遇到什么错误呢?

  数据库连接失败,sql出错

  下面来捕捉并处理这两个错误

  连接成功后继续运行

  连接成功与否最后都要断开游标关闭数据库

def op_mysql(sql,str=True):
    db_info={','host':'118.24.3.40',
             'db':'jxz','port':3306,'charset':'utf8','autocommit':True}
    try:
        coon=pymysql.connect(**db_info)#建立连接       autocommit=True自动提交
    except Exception as e:
        print('mysql连接失败:',e)
        return False
    cur=coon.cursor(pymysql.cursors.DictCursor)
    try:            #试运行
        cur.execute(sql)
    except Exception as e:          #出错后如何
        print('sql执行失败%s'%sql)
        result='sql错误,%s'%sql
    else:                           #剩余代码继续运行
        if str:
            result=cur.fetchall()
        else:
            result=cur.fetchone()
    finally:                        #不管出不出错都要运行的
        cur.close()
        coon.close()
    return result
主动抛出异常(关键字raise)
price=input('请输入价格:').strip()
if not price.isdigit():
    raise Exception('价格错误')

待完善

 

python—异常处理try的更多相关文章

  1. python异常处理(基础)

    之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充. http://www.cnblogs.com/fnng/archive/2013/0 ...

  2. Python异常处理 分类: python Raspberry Pi 服务器搭建 2015-04-01 13:22 172人阅读 评论(0) 收藏

    一个程序要保持稳定运行必须要有异常处理,本文将简单介绍Python中的try-except..异常处理语句的使用. 该种异常处理语法的规则是: 执行try下的语句,如果引发异常,则执行过程会跳到第一个 ...

  3. Python 异常处理--raise函数用法

    raise语句手工引发一个异常: "raise" [expression ["," expression ["," expression]] ...

  4. [Python学习笔记][第八章Python异常处理结构与程序调试]

    1/30 第八章Python异常处理结构与程序调试 异常处理 try-except结构 try: try块 except Exception: except块 try-except-else结构 tr ...

  5. python异常处理try,except,else,finally,raise

    先看下else的使用: try: ... exception: ... else: ... 只有在try中没有发生任何异常,所有代码完全成功的情况下才会转入else 再看下finally: final ...

  6. Python 异常处理

    Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. 断言 ...

  7. python异常处理的哲学

    所谓异常指的是程序的执行出现了非预期行为,就好比现实中的做一件事过程中总会出现一些意外的事.异常的处理是跨越编程语言的,和具体的编程细节相比,程序执行异常的处理更像是哲学.限于认知能力和经验所限,不可 ...

  8. Python异常处理总结

    一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...

  9. python异常处理与断言以及日志模块

    python异常处理与断言 目录: 1.异常处理 2.断言(assert) 3.日志模块(logging) 4.修改之前的车票信息查询,把日志模块.异常处理加进去 1.异常处理 代码如下: 语法: t ...

  10. python 异常处理函数--raise

    Python 异常处理--raise函数用法 在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称.异常名称标识出具体的类: Python异常处理是那些类的对象 ...

随机推荐

  1. Hibernate和Mybatis的工作原理以及区别

    一.Mybatis的工作流程图 (1).原理详见: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一 ...

  2. git工作中常用操作总结

    这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...

  3. 从解决Cocos2dx-2.x arm64 Crash 来看C的奇技淫巧

    最近把以前做的老游戏拿出来,重新编到手机上来玩玩,然后就有了以下的经历. 那时的引擎还是Cocos2dx-2.x,iPhone5还是高档机型.现在的机器是这样的,iPhone6S Plus我自用,今年 ...

  4. jquery 的animate 的transform

    $(function(){ var t = 1000; $("#id").animate( {borderSpacing:180}, //180 指旋转度数 { step: fun ...

  5. webpack安装问题

    在sf进行安装webpack时候,报错如下: 解决方案:npm install webpack-cli -g,如图上

  6. 脚本写一行echo也能写出bug ? glob了解一下

    背景 最近处理一个 bug 很有意思,有客户反馈某个配置文件解析失败了,出错的那行的内容就只有一个字母 a. 最开始以为是谁改动了处理的脚本,但要到了问题代码中的脚本,比较发现跟库上是一样的. 又经过 ...

  7. aosp Pixel 修改 SIM 卡支持及解决网络带x问题

    去除网络X的方法 adb shell settings put global captive_portal_https_url http://g.cn/generate_204 自己用 php 做一个 ...

  8. golang 学习之路 string转换为其他类型 其他类型转换为string

    将其他值转换为string 一般常用fmt.Sprintf(格式,转换的值) // 使用fmt.Sprintf 转换所有的类型为string 使用 这是第一种 // 注意在sprintf使用中需要注意 ...

  9. Django中使用CORS实现跨域请求

    跨域请求: ​    请求url包含协议.网址.端口,任何一种不同都是跨域请求. 1.安装cors模块 pip install django-cors-headers2.添加应用 INSTALLED_ ...

  10. Docker极简部署Kafka+Zookeeper+ElasticStack

    之前写ELK部分时有朋友问有没有能一键部署的Kafka+ELK,写本文主要是填这个坑,基本上配置已经集中在一两个文件中了,理论上此配置支持ElasticStack 7.x所有版本 本文所有配置与代码均 ...