异常捕捉:

try:

XXXXX1

raise Exception(“xxxxx2”)

except (Exception1,Exception2,……):

xxxx3

else:

xxxxx4

finally:

xxxxxxx5

1.raise 语句可以自定义报错信息,如上。

2. raise后的语句是不会被执行了,因为已经抛出异常,控制流将会跳到异常捕捉模块。

3. except 语句可以一个except后带多个异常,也可以用多个语句捕捉多个异常,分别做不同处理。

4. except语句捕捉的异常如果没有发生,那么except里的语句块是不被执行的。而是执行else里的语句

5. 在上面语句中try/except/else/finally所出现的顺序必须是try–>except X–>except–>else–>finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

6.else和finally都是可选的.

7.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。

异常参数输出:

try:

testRaise()

except PreconditionsException as e: #python3的写法,必须用as

print (e)

自定义异常,只需自定义异常类继承父类Exception。在自定义异常类中,重写父类init方法。

class DatabaseException(Exception):

def __init__(self,err='数据库错误'):

Exception.__init__(self,err)

class PreconditionsException(DatabaseException):

def __init__(self,err='PreconditionsErr'):

DatabaseException.__init__(self,err)

def testRaise():

raise PreconditionsException()

try:

testRaise()

except PreconditionsException as e:

print (e)

注意:PreconditonsException又是DatabaseException的子类。

所以如果,raise PreconditionException的话,用两个异常类都可以捕捉。

但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。

实例补充:

python自定义异常捕获异常处理异常

def set_inf(name,age):

if not 0 < age < 120:

raise ValueError('超出范围')

else:

print('%s is %s years old' % (name,age))

def set_inf2(name,age):

assert 0 < age < 120,'超出范围'

print('%s is %s years old' % (name,age))

if __name__ == '__main__':

try:

set_inf('bob',200)

except ValueError as e:

print('无效值:',e)

set_inf2('bob',200)

到此这篇关于python怎么自定义捕获错误的文章就介绍到这了,更多相关python自定义捕获错误的方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

python自定义异常捕获_python怎么自定义捕获错误相关推荐

  1. python异常捕获_Python 异常的捕获、异常的传递与主动抛出异常操作示例

    本文实例讲述了Python 异常的捕获.异常的传递与主动抛出异常操作.分享给大家供大家参考,具体如下: 异常的捕获 demo.py(异常的捕获): try: # 提示用户输入一个整数 num = in ...

  2. python异常数据处理_Python 异常处理和捕获信息教程

    在学习了Python的基础数据类型和它们的相关操作方法之后,要学习的另外一个重点知识是 Python异常. 我们经常在编写程序和调试代码的过程中,有发生一些错误,为了处理和提醒用户这些错误,Pytho ...

  3. python 自定义异常类_python的自定义异常

    1.抛出自定义的异常 你可以用raise语句来引发一个异常.异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类. 我们自定义异常的原因是:因为系统提供的异常类,无法描述我的 ...

  4. python 自定义异常类_python 自定义异常类的使用,继承Exception

    自定义异常类全部继承自BaseError import traceback class BaseError(Exception): def __init__(self): self.err_msg = ...

  5. python单选按钮重置_python – Tkinter单选按钮初始化错误

    存储变量对象的位置(StringVar,v,在您的情况下)必须保持不变,以便这种奇怪的行为不会出现.我的猜测是我们看到这种行为因为v超出了范围,出了问题.除了使用全局之外,我无法想到从函数中执行此操作 ...

  6. python分割函数_Python应用——自定义函数:分割PDF文件函数

    案例 将一个 pdf 文件按要求分割为几个部分.比如说一个pdf有20页,分成5个pdf文件,每个pdf文件包含4页.设计函数实现? Python代码 from PyPDF2 import PdfFi ...

  7. python错误捕获例程_python 错误捕获机制分析

    python语言是编程中使用率在Top 3之内的语言.python语言以灵活与简单著称,那么越是灵活的语言越需要判断出错的功力. 简单示例 以下是一个简单的错误程序,被除数不可为0,那么看看该代码的执 ...

  8. 金丹期前期:1.9、python语言-python程序中的异常与捕获

    一.异常简介 1.一个异常的例子 当如下的Python程序在运行时检测到一个错误,一般这时候解释器就无法继续执行代码了,会出现一些错误的提示,这就是所谓的"异常". #! /usr ...

  9. 以下关于python二维数据的描述中错误的是_python第二章1

    1. (单选题) Python 3.x 版本的保留字总数是( ) A.27B.29C.33D.62. (单选题) 以下选项中,不是 Python 语言保留字的是( ) A.whileB.passC.d ...

最新文章

  1. HDU 1166 敌兵布阵【树状数组】
  2. 软件开发项目云端All
  3. 基于 Ubuntu 搭建微信小程序服务
  4. 中国银行业100强发布,头部名企为何选择永洪科技?
  5. NET Core 3.0 AutoFac替换内置DI的新姿势
  6. Android单击、长按获取当前触点坐标下(TextView)文字字符
  7. 荣耀20发布会花式官宣:4!-3!+2!伦敦见
  8. jquery easyUi的学习笔记{一头扎进EasyUI}
  9. Leetcode每日一题:182.duplicate-emails(查找重复的电子邮箱)
  10. mysql 幻读和不可重复读_幻读和不可重复读的区别
  11. mysql连接nacat_【mysql】使用Navicat连接数据库
  12. Unity基础知识—Transform
  13. html设置一个搜索引擎,零基础打造一款属于自己的网页搜索引擎
  14. linux opendir路径_Linux目录操作函数:opendir/readdir/closedir
  15. 汇通达网络IPO取发行区间下限定价,多家投资方将出现账面亏损
  16. 小白应该如何选择国内服务器?腾讯云、阿里云、小鸟云?
  17. HNUST OJ 2293 贪吃蛇吃苹果
  18. notepad++ 对比文档
  19. 局域网中的IP是怎么确定和分配下来的
  20. eccv 2018 image caption generation论文导读

热门文章

  1. 北京冬奥会闭幕 冰墩墩概念股怎么样了?
  2. 苹果AR/VR头显将通过Memojis和SharePlay支持FaceTime
  3. 网易云音乐上市首日收跌2.49% 盈利困境仍待解
  4. 微信公布10月朋友圈十大谣言 包括牙膏能杀灭幽门螺杆菌等
  5. 我和2000万人在B站刷凤凰传奇
  6. 一加Z配置细节曝光:处理器大变 为了更好的进入欧洲市场?
  7. 阿里巴巴数据报告:消费向境内回流 低线城市消费蓬勃
  8. 老司机们看一下!支付宝又为你省下一笔钱了,还有6大免费承诺
  9. 8月22日见!iQOO Pro跑分曝光:近50万得分 无对手
  10. 5G iPhone,再等一年,有三款!