您的位置:首页 > 娱乐 > 明星 > 异常处理的例子

异常处理的例子

2024/10/5 14:12:15 来源:https://blog.csdn.net/2302_76708905/article/details/139954651  浏览:    关键词:异常处理的例子

多个except

示例代码如下

try:a = input("请输入被除数:")b = input("请输入除数:")c = float(a)/float(b)print(c)except ZeroDivisionError:print("异常:除数不能为0")
except TypeError:print("异常,除数和被除数都应该为数值类型")
except Exception as e:print(e)print(type(e))

代码运行结果如下

1、当输入正常数字时

2、输入除数为0

3、输入的数据不能转换为数字

try..except...else结构

示例代码如下

try:a = input("请输入被除数:")b = input("请输入除数:")c = float(a)/float(b)print(c)
except Exception as e:print(e)print(type(e))
else:print('除的结果是:',c)

代码运行结果

1、无异常时

2、有异常时

try...except...finally结构

示例代码如下

try:a = input("请输入被除数:")b = input("请输入除数:")c = float(a)/float(b)print(c)
except Exception as e:print(e)print(type(e))
else:print('除的结果是:',c)
finally:print("无论程序是否有异常,我都会执行!!!")print("程序结束")

代码运行结果(有异常时)

 阅读文档中的一行文字

示范代码如下

f = open("text.txt","r",encoding="utf-8")
'''
open意为打开文件,后面第一个参数为文件存放在电脑中的位置,第二个参数r意为读取文件,第三个参数为设置编码格式
Python默认使用‘gbk’编码来解码文字
第一个参数可以是绝对路径  d:/creation/PythonStudy/Pythonproject/mypro01/text.txt(此路径根据电脑存放文件位置不同)
也可以是相对路径(此时需要读取的文件和项目在同一个位置)
'''
content = f.readline()
print(content)

代码运行结果

当有异常时(将上面代码的第三个参数删掉并执行程序)

示例代码如下

try:f = open("text.txt","r")content = f.readline()print(content)
except Exception as e:print(e)
finally:f.close()   #关闭打开的文件print("继续执行其他的代码")

程序执行结果

with上下文管理

语法结构:

with context_expr [as var]:语句块

示例代码如下

with open("text.txt",encoding="utf-8") as f:for line in f:print(line) # 实现打印多行文档内容

代码运行结果

这是一段用于测试的文字1这是一段用于测试的文字2这是一段用于测试的文字3Process finished with exit code 0

 自定义异常类与raise抛出异常

示例代码如下

class AgeError(Exception): #自定义异常类def __init__(self,errorInfo):Exception.__init__(self)self.errorInfo = errorInfodef __str__(self):return str(self.errorInfo)+",年龄错误,应该在1-150之间"if __name__ == "__main__":  #如果是True,则模块是作为独立文件执行,这下面可以写测试代码age = int(input("输入一个年龄:"))if(age<1 or age>150):raise AgeError(age) # 抛出异常else:print("正常年龄:",age)

代码运行结果

1、输入正常年龄时

2、输入错误的年龄时

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com