1.什么是异常(exception):

异常是python发现某个地方出现逻辑错误时,抛出一个信号,即异常的引发。如果有捕捉语句在,则异常信号被捕捉,如果没有则会传递到默认异常处理器(终止程序)。

异常也可以是自定义的,比如某项研究中规定人数必须大于10人,否则视为异常处理。

2.如何引发异常:

2.1程序本身的语法错误引起。

2.2为了某种目的,人为设置的引发器:

引发器:raise和assert,assert是有条件的raise

raise的用法: raise BASEEXCEPTION。

assert的用法: assert 布尔值,异常提示内容。

BASEEXCEPTION可以是python内部的,也可以是自定义的。

3.自定义BASEEXCEPTION:

3.1自定义异常类必须必须是Exception或者Error的子类

class ZeroError(Exception):
  '''自定义一个异常类'''
     def __init__(self, value):
     Exception.__init__(self)
     self.value = value

 

4.try ********expect********else*****finally 

try下面的语句是否有引发异常,有的话执行expect,没有的话执行else,不管有没有finally下的语句都会执行。

 

try:
    执行代码
expect 异常类,异常类的实例:
    执行代码
else:
    执行代码
finally:
    执行代码

  

参考:

http://blog.sina.com.cn/s/blog_151a5b5330102wqsg.html

https://www.cnblogs.com/mianbaoshu/p/7810696.html

python 异常的引发和捕捉处理的更多相关文章

  1. python——异常except语句用法与引发异常

    except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...

  2. python 异常

    引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...

  3. python——异常

    一.什么是异常 1.错误 从软件方面来说,错误是语法或是逻辑上的.错误是语法或是逻辑上的. 语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译.这些些错误必须在程序执行前纠正. 当程 ...

  4. Python——异常基础

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

  5. #21 Python异常

    前言 运行程序时经常遇到各种错误,例如:ImportError(导入模块错误).IndexError(索引错误).NameError(变量错误).SyntaxError(语法错误).Indentati ...

  6. Python异常和异常处理

    Python异常和异常处理2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多 个人分类: Python 版权声明:本文为博主原创文 ...

  7. python 异常之进阶操作

    1.文件分析 下面来做一些文件分析操作,分析整本书的信息. 知识点: string.split():将字符串分解为列表. open(filename,‘rb’)或者open(filename,enco ...

  8. 如何处理python异常

    1.python异常有那些? window的机器如果安装了python,则直接可以在idle中查看,打开idle,按F1即可打开帮助文档,按如下路径即可查看,也可以去python官网查看这里不说明了百 ...

  9. C++异常处理解析: 异常的引发(throw), 捕获(try catch)、异常安全

    前言: C++的异常处理机制是用于将运行时错误检测和错误处理功能分离的一 种机制(符合高内聚低耦合的软件工程设计要求),  这里主要总结一下C++异常处理的基础知识, 包括基本的如何引发异常(使用th ...

随机推荐

  1. MySQL服务停止,无法启动了~

    怎么解决mysql服务无法启动的问题

  2. 在TextView中设置DrawableLeft不显示的问题

    1.在XML中使用 android:drawableLeft="@drawable/icon" 2.代码中动态变化 Drawable drawable= getResources( ...

  3. 【BZOJ1816】[Cqoi2010]扑克牌 二分

    [BZOJ1816][Cqoi2010]扑克牌 Description 你有n种牌,第i种牌的数目为ci.另外有一种特殊的牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张j ...

  4. oracle 网络访问配置tnsnames.ora文件的路径

    转自:https://blog.csdn.net/jaray/article/details/22379811 oracle 网络访问配置tnsnames.ora文件的路径 oracle 9i  是: ...

  5. 表达式求值(java)

    今天去面试,考了这个,短时间没想出来... 太笨了! 后来想用栈和递归做 但是看了网上才知道,可以将中缀表达式转为后缀表达式,就极其方便了. import java.util.Scanner; imp ...

  6. finereport-JS

    JS实现定时刷新报表 setInterval("self.location.reload();",10000); //10000ms即每10s刷新一次页面. 注:对于cpt报表,若 ...

  7. mysql什么情况下使用索引

    表的主关键字 自动建立唯一索引 如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号) 表的字段唯一约束 ORACLE利用索引来保证数据的完整性 如lc_hj(流程环节)中的lc_bh+h ...

  8. python线程池/进程池创建

    进程池 import time from concurrent.futures import ProcessPoolExecutor def task(arg): time.sleep(2) prin ...

  9. tornado.web.StaticFileHandler

    tornado.web.StaticFileHandler 源代码中的解释 class StaticFileHandler(RequestHandler): """A s ...

  10. rabbitmq channel参数详解【转】

    1.Channel 1.1 channel.exchangeDeclare(): type:有direct.fanout.topic三种durable:true.false true:服务器重启会保留 ...