python报的错误怎么处理
在编写Python代码或开发实际应用的项目时,程序报出异常或错误是在所难免的,那么我们应该怎样处理这些异常呢?下面来说一下方法。
1.使用try...except捕捉异常
#FormatTableID_0# #FormatTableID_1#或
#FormatTableID_2# #FormatTableID_3#2.使用try ...except...else语句捕捉异常
当try块中的代码没有异常时,则跳过except块中的代码,执行else块中的代码
工作原理:
1).如果try代码块语句执行发生异常,Python就跳回try,执行第一个匹配该异常的except块中的代码
2).如果异常发生在try代码块内,没有匹配的except子句,name异常就会向上传递到程序中之前进入的try中,或者转到这个进程的顶层(这会使python终止当前程序并打印默认的错误消息)
3).如果try块中的代码执行没有异常发生,则python将执行else块中的代码
3.使用try...finally捕捉异常
当try块中包含了finally语句,则python一定会在执行完try块中的代码之后在执行finally块中的代码(无论try块中的代码是否发生异常都将执行finally块中的代码)
工作原理:
1).如果执行try块中的代码时没有发生异常,则Python会跳转至finally语句并执行该代码块,然后继续执行程序中finally语句之后的代码
2).如果执行try块中的代码时发生异常,则Python依然会执行finally语句中的代码块,但是接着会将异常向上传递到上层的try语句或顶层的默认处理器,程序不会继续执行导致发生异常的语句之后的try块中的代码。也就是说,即使发生了异常,finally代码块还是会被执行,和except不同的是,finally不会终止异常,而是在finally代码块执行后,一直处于发生状态
4.使用raise抛出异常(手工引发异常)
raise<异常对象>
‘异常对象’表示将引发异常的异常名称,且异常名称标识了具体的异常类。raise语句还可指定对异常对象进行初始化的参数,为此需要在异常类的名称后添加一个逗号以及指定参数(或者由参数构成的一个元组 )。一旦执行了raise语句,raise语句后的代码将不能被执行
raise<异常对象>,<异常信息标识>
例子:
#FormatTableID_4# #FormatTableID_5#5.自定义异常
格式class MyError(Exception):
#FormatTableID_6# #FormatTableID_7#6.使用assert语句
用于检测某个条件表达式是否为真。又称断言语句,即assert认为检测的表达式永远为真,断言失败就会引发AssertionError异常
语法格式:assert<条件判断表达式>
#FormatTableID_8#username = 'admin'
password='123456'
assert username =='admin' and password == 'admin','密码错误!'
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论