为什么要异常处理机制:
在程序调用层数较深时,向主调函数传递错误信息需要层层return 返回比较麻烦,用异常处理机制可以较简单的传送错误信息

什么是错误
 错误是指由于逻辑或语法等导致一个程序已无法正常执行的问题

什么是异常 
异常是程序出错时标识的一种状态
当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态

异常作用: 
用作信号,通知上层调用者有错误产生需要处理

异常处理语句:
    try-except 语句:
        用于接收异常通知,捕获异常
    try-finally 语句:
        执行必须要执行的语句
    raise 语句
        发送异常知通,并进入异常状态
    assert 语句
        根据条件选择性的发送AssertionError类型的异常通知

try 语句: 
两种语法:
    try-except语句
    try-finally语句

try-except语句
try-except语句语法: 
   try:
        可能触发异常的语句
    except 错误类型1 [as 变量1]:
        异常处理语句1
    except 错误类型2 [as 变量2]:
        异常处理语句2
    except (错误类型3,错误类型4, ....) [as 变量3]
        异常处理语句3
    ...
    except:
        异常处理语句(其它)
    else:
        末发生异常语句
    finally:
        最终语句

作用:
    偿式捕获异常,将程序由异常状态转为正常状态并正常执行

try-except语句说明:
    1. as 子句是用于绑定错误对象的变量,可以省略
    2. except 子句可以有一个或多个,但至少要有一个
    3. else子句最多只能有一个,也可以省略不写
    4. finally子句最多只能有一个,也可以省略不写
    5. else子句的语句将在此try语句没有发生异常时被执行
    6. finally子句的语句在任何情况下都会被执行

try-finally 语句 
语法:
    try:
        可能触发异常的语句
    finally:
        最终语句

说明:
    1. finally 子句不可以省略
    2. 一定不存在except子句

作用:
    通常用try-finally语句来做触发异常时必须要处理的事情
    无论异常是否发生,finally子句都会被执行

注意:
    try-finally 语句不会改变程序的(正常/异常)状态

raise 语句
作用:
    触发一个错误,让程序进入异常状态
    发送错误通知给调用者
语法:
    raise 异常类型
    或
    raise 异常对象

assert 语句(断言语句) 
语法:
    assert 真值表达式, 错误数据(通常是字符串)

作用:
    当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态

等同于:
    if 真值表达式 == False
       raise AssertionError(错误数据)

Python异常(基础) except的更多相关文章

  1. Python——异常基础

    异常基础 在Python中,异常会依据错误自己主动地被触发.也能由代码触发和截获.异常由五个语句处理: 1.[try/except]:捕捉由Python或你引起的异常并恢复. 2.[try/final ...

  2. Python异常基础

    一.常见异常及场景举例 1.AssertionError 断言失败,断言是调试中常用(表示自己并不常用┑( ̄Д  ̄)┍)手段 举例: def foo(s): n = int(s) assert n ! ...

  3. Python 异常机制

    1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass # 程序正常执行时做什么操作 ...

  4. 零基础学Python--------第2章 Python语言基础

    第2章  Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...

  5. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  6. Python 入门基础6 --字符编码、文件操作1

    今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...

  7. Python入门基础学习 三

    Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...

  8. Python 从基础------进阶------算法 系列

    1.简介                                                                                               关 ...

  9. Python开发基础-Day23try异常处理、socket套接字基础1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

随机推荐

  1. SQLIO 磁盘測试工具參考

    SQLIO 下载地址:id=20163">SQLIO Disk Subsystem Benchmark Tool 默认文件夹:C:\Program Files\SQLIO 以命令行执行 ...

  2. ABAP术语-Update Key

    Update Key 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114171.html Unique character str ...

  3. nginx 开启phpinfo

    在nginx配置文件中加 location / { //如果是资源文件,则不走phpinfo模式 if (!-e $request_filename){ ewrite ^/(.*)$ /index.p ...

  4. homebrew 使用心得

    ''' 安装anaconda 安装命令: brew search anaconda brew cask install anaconda 添加环境变量: vi ~/.bash_profile expo ...

  5. Python 1.3 元组与文件

    一 Python元组Tuple类型 元组T= (1, 2, 3, 4)是不可变类型,属于序列,但顶层元素不可变,仅支持count()和index()操作. -*- coding:UTF- -*- # ...

  6. MongoDB成为最受开发人员期待的数据库系统

    本文翻译之MongoDB官方博客,原文地址:https://www.mongodb.com/blog/post/stack-overflow-research-developers-mongodb-m ...

  7. Scala数组操作

    数组操作 初始化固定长度的数组 // 初始化长度为10的数组 val array = new Array[Int](10) // 初始化创建含有hello与Scala的数组 val s = Array ...

  8. 开篇~试试word写博客

    word发布博客设置,mark一下 原帖地址:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html word代码高亮插件:h ...

  9. 20155220 2016-2017-2 《java程序设计》第二周学习总结

    教材学习内容总结 3.1类型.变量与运算符 1)基本类型 byte 字节型 1 byte short 短整型 2 bytes int 整型 4 bytes long 长整型 8 bytes float ...

  10. 20155231 2016-2017-2 《Java程序设计》第2周学习总结

    20155231 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 学习目标: 了解java编程风格 认识java的类型与变量 掌握java流程控制 第三章基础 ...