首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【从零学习python 】56. 异常处理在程序设计中的重要性与应用

异常的概念 在程序运行过程中,由于编码规范或其他客观原因,可能会导致程序无法继续运行,此时就会出现异常。如果不对异常进行处理,程序可能会直接中断。为了保证程序的健壮性,引入了异常处理的概念。...print(f.read()) except FileNotFoundError: print('文件没有找到,请检查文件名称是否正确') try…else语句 在if语句中,我们对else...在try...except...中也一样,即如果没有捕获到异常,就执行else中的操作。...pass finally: f.close() print('关闭文件') except: print('没有这个文件') 说明: 我们可以观察到,当触发...但在程序退出之前,finally语句块仍然会被执行,关闭文件。

5510

Python错误及异常总结汇总

检测和处理异常 异常可以通过 try 语句来检测。任何在 try 语句块里的代码都会被监测,检查有无异常发生。 try 语句有两种主要形式: try-except 和 try-finally ....异常参数 异常也可以有参数,异常引发后它会被传递给异常处理器。当异常被引发后参数是作为附加帮助信息传递给异常处理器的。虽然异常原因是可选的,但标准内建异常提供至少一个参数,指示异常原因的一个字符串。...else 子句 我们已经看过 else 语句段配合其他的 Python 语句,比如条件和循环。...我们得知无论 try 中是否有异常触发,finally 代码段都会被执行。 ? try-except-else-finally语句 ?...断言语句 断言语句等价于这样的 Python 表达式,如果断言成功采取任何措施(类似语句),否则触发AssertionError(断言错误)的异常.assert 的语法如下: ? ----

1.2K110
您找到你想要的搜索结果了吗?
是的
没有找到

python Exception(异常处

逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者出结果需要的过程无法执行等。    默认情况下:python脚本执行过程中出现异常后,脚本执行将被终止。    ...程序员也可以在代码中托运触发异常    python异常也可以理解为:程序出现了错误,而在正常控制流以外采取的行为        第一阶段:解释器触发异常,此时当前程序流将被打断。        ...   特殊情况处理:        无法调整代码去处理的场景    终止行为:        try/finally语句可确保执行必需的结束处理机制    非常规控制流程:        ...:任何在try语句块中的代码都会被监测,以检查有无异常发生。    ...自定义异常:    raise语句可显式触发异常(即手机触发异常)        raise [SomeException [, args [, traceback]]]            SomeException

2.1K30

Python异常

一.Python的运行时错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者输出结果需要的过程无法执行等...Python异常也可以理解为:程序出现了错误而在正常控制意外采取的行为 第一阶段:解释器触发异常,此时当前程序流将被打断 第二阶段:异常处理,如忽略非致命错误、减轻错误带来的影响等 二、异常的公用 1....错误处理 python的默认处理:停止程序,打印错误消息 使用try语句处理异常并未从异常中恢复 2.事件通知 用于发出有效状态信号 3.特殊情况处理 无法调整代码去处理的场景 4.终止行为 try/...finally语句可确保执行必须的结束处理机制 5.非常规控制流程 异常是一种高级跳转(goto)机制 三、检测和处理异常 1.异常通过try语句来检测 任何在try语句块里的代码都会被监测,以检查有无异常发生...... else: else_suite finally: finally_suite 可以替换在try-finally语句中嵌套try-except语句形式 5.自定义异常 raise语句可显示触发异常

2.4K90

Python回顾与整理8:错误和异常

根据上面的解释,可以理解为,只要解释器检测到程序运行时出现了错误(与Python解释器不相容而导致),就会触发一个异常。...),就会跳到该异常处理器中进行处理,后面的代码会被忽略(后面的其它except语句);如果在该层没有找到对应的异常处理器,该异常会被向上移交,比如移交到调用该函数的上层代码;当异常到达最顶层仍然没有找到对应处理器时...    suite_for_exception_Exception2         需要注意的是,当有异常发生时,一旦找到对应的异常处理器,程序的执行流就会跳转到该异常处理器中,其它的except语句会被忽略...但是对于SystemExit和KeyboardInterupt这两个异常,使用Exception是无法捕获的,因为它们不是Exception的继承者,原因很简单,因为这两个异常不是由于错误条件引起的。...注意,如果用一个except语句来同时捕获多个异常时,使用一个错误原因即可,因为每一个异常都会生成自己的异常参数。

70410

核心编程笔记之十-Py

10.1 什么是异常 10.1.1 错误 错误时语法或是逻辑上的,语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译 当Python检测到一个错误时,解释器就会支出当前流已经无法继续执行下去...,任何在try语句块里的代码都会被检测,检查有无异常发生 try语句有两种形式: try-except和try-finally 一个try语句可以对应一个或多个except子句,但只能对应一个finally...return retval 当我们提供的safe_float()参数给的恰当时,虽然只有一条捕获语句,但可以获得如下信息: >>> safe_float('xyz') 'could not convert...C finally: D 10.3.10 try-finally语句: 无论try中是否有异常触发,finally代码段都会被执行 try:    try_suite finally:    finally_suite...tb供使用 raise重新触发前一个异常,如果之前没有异常,触发TypeError 10.7 断言 断言是一句必须等价于布尔真的判定,此外,发生异常也意味着表达式为假 可以理解为是raise-if-not

83720

【Python基础】09、Python异

、计算或者输出结果需要的过程无法执行等 Python异常是一个对象,表示错误或意外情况 在Python检测到一个错误时,将触发一个异常         Python可以通过异常传导机制传递一个异常对象,...发出一个异常情况出现的信号         程序员也可以在代码中手动触发异常 Python异常也可以理解为:程序出现了错误而在正常控制流以外采取的行为 第一阶段:解释器触发异常,此时当前程序流将被打断...(goto)机制 3、检测和处理异常 异常通过try语句来检测        任何在try语句块里的代码都会被监测,以检查有无异常发生 try语句主要有两种形式:       try-except:检测和处理异常...Exception[, reason]:    #Execption 异常类型, reason是自定义的变量捕获触发此错误的原因                    except_suite #触发错误后的操作...ipython-input-1-7e8eb9fe7515> in () ----> 1 xj NameError: name 'xj' is not defined           #异常类型:触发此异常的原因

1.1K20

Python运行环境与异常处理

逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者输出结果需要的过程无法执行等。   在Python中异常是一个对象,表示错误或意外,检测到一个错误时,将触发异常。...Python可以通过异常传导机制传递一个异常对象,发出一个异常情况出现的信号;程序员也可以在代码中手动触发异常。Python异常可以理解为:程序员出现了错误而在正常控制流以外采取的行为。...这种处理方式的主要作用有: 错误处理:默认处理,停止程序,打印错误信息;使用try语句处理异常并恢复事件通知:用于发出有效状态信息特殊情况处理:无法调整代码去处理的现场终止行为:try/finally语句可确保执行必须的结束处理机制非常规控制流程...:异常是一种高级跳转(goto)机制 异常的检测与处理   在Python中,异常通过try语句来检测,任何在try语句块里的代码都会被监测,检查有无异常。...语句:   except分句个数没有限制,但else只能有一个;没有异常发生时,else分句才会执行;没有符合的except分句时,异常会向上传递到程序中的之前进入的try中或者道程序的顶层。

1.2K10

Verilog组合逻辑设计指南

在描述组合逻辑设计时,始终建议使用阻塞(=)赋值,原因很简单,但本质是作为一名工程师需要理解其背后的基本原理。 为了理解阻塞赋值,让我们了解分层事件队列的概念。...如上图所示,a上的事件触发块always@(a)并生成输出b。最终,b输入上的更改用于触发另一个always@(b)并生成输出a。因此,这将继续并在设计中显示振荡行为或竞转条件。...ASIC/FPGA设计中建议使用非故意锁存,因为它会在设计测试或DFT期间导致问题。即使在STA期间,定时算法也无法理解是在时钟的正边缘还是在时钟的负边缘采样数据。...如果分块分配的顺序不正确,则有可能出现仿真和综合匹配。 示例4.9,在该示例中,仿真和综合结果中的问题是由于阻塞语句的顺序造成的。除非执行当前语句,否则阻塞赋值将阻止下一个即时语句的执行。...因此导致仿真和综合匹配。 图4.6 阻塞赋值的综合结果 使用if-else与case语句 当“case-endcase”中包含所有case条件时,该语句称为”full-case”语句

3.7K21

阿里Java编程规约【八】 控制语句

【强制】在 if / else / for / while / do 语句中必须使用大括号。...正例:超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句示例如下: public void findBoyfriend(Man man) { if...说明:很多 if 语句内的逻辑表达式相当复杂,与、或、取反混合运算,甚至各种方法纵深调用,理解成本非常高。如果赋 值一个非常好理解的布尔变量名字,则是件令人爽心悦目的事情。...【推荐】不要在其它表达式(尤其是条件表达式)中,插入赋值语句。 说明:赋值点类似于人体的穴位,对于代码的理解至关重要,所以赋值语句需要清晰地单独成为一行。...3)被声明成 private 只会被自己代码所调用的方法,如果能够确定调用方法的代码传入参数已经做过检查或者肯定 会有问题,此时可以校验参数。 笔记:根据业务适当调整是可以的。

78520

MySQL 高级 | 用存储过程、定时器、触发器来解决数据分析问题

控制结构语法格式 if 条件 then sql 语句else if 条件 then sql 语句else sql语句; end if 图片 存储过程中的参数传递 为了让存储过程更加灵活...事件激活、激活、从服务上激活(事件在主服务商创建并赋值到从服务器上,仅在主服务上执行) [comment "注释"] 可选参数。...3、多语句执行的时候,可能需要修改结束分隔符,比如:delimiter $ 4、如果事件的开始时间已经过去了,虽然创建语句不会报错,但是事件不会被创建以及执行 5、事件⾥⾯不能嵌套事件,但是存储过程里面可以使用事件...2、触发器如何使用 创建 触发器只支持行级触发(每一行受影响,触发器都执行,叫作行级触发器),不支持语句触发。...要求改到2,并且让商品表的库存量也变化(改) 要求:假如现在剩余 26 只pig,但是客户下订单买27只,能否预防,能否将buy_num > num 时,将buy_num 自动改为 num(深入理解

1.3K20

Python自动化运维之异常处理

执行raise语句时,python会创建指定异常类的对象,还能够指定对异常对象进行初始化的参数,参数也可以为由若干参数组成的元组。 注意:一旦执行raise语句,程序就会被终止。...]:     捕获异常并获取附加数据 except:     没有指定异常类型,捕获任意异常 else:     没有触发异常时,执行的语句块 4、try的工作原理 执行一个try语句时,python解析器会在当前程序流的上下文中作标记...如果在try子句执行时没有发生异常,python将执行else语句后的语句(可选),然后控制流通过整个try语句。 ...else:     print('Reading the file')       # 执行 执行结果: In [157]: %run testError.py File not Exists 嵌套...      语句块 6、try..finally语句 无论try语句块中是否触发异常,都会执行finally子句中的语句块,因此一般用于关闭文件或关闭因系统错误而无法正常释放的资源。

1K30

【Python】第一部分:第一段代码

如果没有关联变量了,也就是计数等于0了,数据就会被销毁,内存空间被释放。del 关键字就是用来删除变量的,形象一点就是上图中的小叉叉。 引用计数计数存在问题。...分代回收:将内存空间从小到达分为0、1、2三代,如果前代内存满了,触发标记清除,然后把有用的数据升代。如果老年代的内存满了,那只能触发全盘标记清除,但是很难填满老年代的空间。...python 的流程控制 选择语句,循环语句,跳转语句。 ⭐️选择语句 选择语句 可以让代码根据条件,有选择性的执行,使用 if elif else。...while 条件: # 满足条件执行的语句 else: # 不满足条件执行的语句 for 变量列表 in 可迭代对象: # 语句块1 else: # 语句块2 else...⭐️跳转语句 在循环体内用break跳转语句跳出循环时,else子句执行。实现了对于循环结束出口的判断。所以如果循环体内没有break,else也没有必要加了。

32610

3800 字 Python 流程控制专题总结

for或while组合,表示接下来循环体内的语句执行,重新进入下一次遍历。...Python特色的、与顺序相关的执行功能,还需要理解下面的进阶用法。...通过前后代码对比,我们便能看出for和else组对的功能:for遍历完成后执行else,但是触发break后,else执行。 大家平时多多使用,便能习惯以上用法。...6.2 try,except 和 else 组对 try 和 except 组对比较容易理解触发异常执行 except 里的代码,否则不执行。 但是加上一个else实现怎样的作用呢?...有的朋友会问,为什么不把else这块代码放到try里面?这还是有一定区别的:放到else中意味着这块代码不必受保护,因为它不可能触发ValueError这样的异常。

70510

以写代学:python 错误、异常、断言

还可能是逻辑无法生成,计算,或是输出结果需要的过程无法执行 2.异常 (1)当python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常 (2)异常是因为程序出现了错误而在正常控制流以外采取的行为...try里边去执行,想要捕获什么异常,就把异常放到except里边去,捕获后的异常怎么去处理,把处理的语句写到except下边,包含finally语句,except语句,try语句else语句,with...    print "something wrong     因为不知道究竟是什么报错 3.2 else语句&&finally语句       实例4算是一个比较完整的捕获异常和没有异常之后程序怎么执行的例子...,没有异常就使用else语句执行,最后的finally语句,不管异常异常都会执行,可以用在文件打开后发生异常导致文件没有关闭,可能会发生数据损坏,使用finally可以保证文件总是能正常的关闭。...print line, 4.触发异常 (1)要想引发异常,最简单的形式就是输入关键字raise,后面跟要引发的异常的名称 (2)执行raise语句时,Python会创建指定的异常类的一个对象 (3)raise

69520

Python 异常处理与反射机制

AttributeError 试图访问一个对象没有的树形 FileNotFoundError 输入/输出异常,无法打开的文件 ImportError 无法引入模块或包,路径文件错误 IndentationError...当然了try..except语句还可以添加一个else子句,当try子句中的代码发生异常时,程序直接跳转到except子句里去执行,反之程序将执行else语句的内容,如下示范,执行除法运算时当除数为0,...◆try..finally◆ try..finally语句else语句差不多,但finally语句是无论异常是否发生了,finally子句里面的内容都会被执行,所有finally语句通常都用于关闭因异常而不能释放的系统资源...当程序出现错误时,Python会自动引发异常,也可以通过raise语句显示的引发异常,这里我们来看一个异常主动触发语句,raise语句,此语句用于主动的触发异常. import os import sys...Python 反射机制 在程序开发中,常常会遇到这样的需求:在执行对象中的某个方法,或者在调用对象的某个变量,但是由于一些原因,我们无法确定或者并不知道该方法或者变量是否存在,这时我们需要一个特殊的方法或者机制来访问或操作该未知的方法或变量

50120

Python抛出异常_python抛出异常的作用

ImportError #无法引入模块或包;基本上是路径问题或名称错误 IndentationError #语法错误(的子类) ;代码没有正确对齐 IndexError...语句 try: abc() except Exception as e: print(e) else: print('') #当try语句中的代码没有异常,就执行else中的代码...可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。...sys.exc_info()可以直接定位最终引发异常的原因,结果比较简洁,但是缺点是难以直接确定引发异常的代码位置 """ raise 语法结构: raise [exceptionName [(reason...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.5K70
领券