千锋教育-做有情怀、有良心、有品质的职业教育机构

python报的错误怎么处理

来源:千锋教育
发布时间:2023-11-10 15:19:09
分享

在编写Python代码或开发实际应用的项目时,程序报出异常或错误是在所难免的,那么我们应该怎样处理这些异常呢?下面来说一下方法。

1.使用try...except捕捉异常

try:

s=1/0

exceptIndexError:

print('except')

exceptKeyError:

print('Keyerror')

exceptZeroDivisionError:

print('ZeroDivisionError')

或

try:

s=1/0

except:

print('出现异常')

或有多个异常名称的格式

try:

s=1/0

except(IndexError,KeyError,ZeroDivisionError),e:

print(e)

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<异常对象>,<异常信息标识>

例子:

try:

raiseNameError

exceptNameError:

print('抛出一个异常')

5.自定义异常

格式classMyError(Exception):

def__init__(self,value):

self.value=value

def__str__(self):

returnrepr(self.value)

try:

raiseMyError(2*2)

exceptMyErrorase:

print('Myexceotionoccurred,value:',e.value)

6.使用assert语句

用于检测某个条件表达式是否为真。又称断言语句,即assert认为检测的表达式永远为真,断言失败就会引发AssertionError异常

语法格式:assert<条件判断表达式>

username='admin'

password='123456'

assertusername=='admin'andpassword=='admin','密码错误!

以上内容为大家介绍了python培训之报的错误怎么处理,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python作为小白该如何抉择python编辑器? 刚开始接触编程,有一个好的编辑器上手,那学习起来肯定是事半功倍的!本篇就给大家介绍适合零基础小白学习Python的四种编辑器,希望大家受用!1.SublimeText:这是一个轻量级的代码编辑器,跨平
  • python函数参数的定义有哪几种? 函数参数的使用有两个方面值得注意:函数参数是如何定义的以及在调用函数的过程中参数是如何被解析的。先看第一个问题,在python中函数参数的定义主要有四种方式:1.F(arg1,arg2,...)这是最
  • python怎么把/r/n替换成/n? python在文本编辑器中会自动将\r\n截断成\n,(在unix上换行使用\n,windows上,换行使用的是\r\n)于是,写了这个脚本,不用一行一行去改。来具体看下如何实现的:importosd
  • python序列化模块pickle和json的使用和区别 这是用于序列化的两个模块:json:用于字符串和python数据类型间进行转换pickle:用于python特有的类型和python的数据类型间进行转换Json模块提供了四个功能:dumps、dump
  • pythoneval的用法及注意事项 eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表
  • python详细分析Python中运算符"=="和"is"的差别 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、pythontype()(数据类型)和value(值)。is和==都是对对象进行比较判断作