写代码的时候会遇到各种各样的异常,那么代码就不会继续往下走了。比如说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. 这么香的Chrome插件,你都安装了吗?

    工欲善其事必先利其器,今天长话短说,介绍13个敏捷.高效的Chrome插件 根据使用方式,本人将其划分为三大类: 开发者工具 日常效率工具类 浏览器管理类 开发者工具 1. Web Developer ...

  2. 十分钟复习CSS盒模型与BFC

    css盒模型与BFC 本文为收集整理总结网上资源 旨在系统复习css盒模型与bfc 节省复习时间 阅读10分钟 什么是盒模型 每一个文档中,每个元素都被表示为一个矩形的盒子,它都会具有内容区.padd ...

  3. LeetCode 33.Search in Rotated Sorted Array(M)

    题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...

  4. JZOJ 1736. 扑克游戏 (Standard IO)

    1736. 扑克游戏 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 有一棵无穷大的满二叉树,根为sta ...

  5. 网络编程技术-----6、I/O复用实现并发服务器

    网络编程技术-----6.I/O复用实现并发服务器 一.实验要求 服务器:     服务器等待接收客户的连接请求,一旦连接成功则显示客户地址,接着接收客户端的名称并显示:然后接收来自该客户的字符串,对 ...

  6. vue组件通信(props,$emit,$attrs,$listeners)

    朝颜陌   vue基础----组件通信(props,$emit,$attrs,$listeners) 一.父传子,子传孙 1. props 1>在父组件中通过子组件自定义的标签属性来传递数据. ...

  7. js 实现端口列表话

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Java 基础(六):循环

    循环 老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制: 根据是否知道循环的次数可以为分为while循环,do...whi ...

  9. H5新特性之语义化标签

    一.为什么要增加新的语义化标签 在HTML 5出来之前,我们用div来表示章节,但是这些div都没有实际意义,这样的布局方式使我们的结构不够清晰,于是语义化标签应运而生. 二.何为语义化标签 顾名思义 ...

  10. python enumerate用法总结(转)

    原文链接:https://blog.csdn.net/churximi/article/details/51648388 enumerate()说明 enumerate()是python的内置函数en ...