关于在捕获异常中 except 代码块里再自定义抛出异常 raise 的使用问题
相关代码:
def __read(self):
with open(self.students_path, 'r', encoding='utf-8') as f:
try:
data = f.read()
except Exception as e:
raise e
return json.loads(data)
问题描述:
上面代码使用 try...except 捕获了读取的异常,但是在 except 代码块里又自主抛出一个异常,那在使用这个函数的时候,会不会因为自主抛出的异常而导致程序中断呢?
对 raise 的更多用法不清楚,因为之前课程说 raise 是自主抛出异常,外面需要使用 try...except 来捕获我们自主抛出的异常.
是不是可以理解为 raise 的功能和 return 很相似,只不过 raise 是以错误的形式,返回信息?
请老师解答,谢谢.
9
收起
正在回答
1回答
同学,你好!当程序出现错误,raise可以在指定位置手动抛出异常,根据条件指定异常内容,一旦执行了raise语句,raise后面的语句将不能执行。
raise和return都能使程序终止运行,两者是有区别的,raise后面写的是异常类型,程序是没有返回内容的,代码示例如下:
return后面写的是方法返回结果,代码示例如下:
祝学习愉快~
Python全栈工程师2020
- 参与学习 人
- 提交作业 5211 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星