3-4 Python异常机制常考题

Posted WinvenChang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3-4 Python异常机制常考题相关的知识,希望对你有一定的参考价值。

一、什么是Python的异常?

Python使用异常处理错误(有些语言使用错误码)
1.BaseException
2.SystemExit/KeyboardInterrupt/GeneratorExit
3.Exception

二、使用异常的常见场景

什么时候需要捕获处理异常呢?看Python内置异常的类型
1.网络请求(超时、连接错误等)
2.资源访问(权限问题、资源不存在)
3.代码逻辑(越界访问、KeyError等)

三、如何处理 Python异常

搞懂几个关键字

try:
	# func							  # 可能会招聘异常的代码
except (Exception1, Exception2) as e: # 可以捕获多个异常并处理
	# 异常处理的代码
else:
	# pass							   # 异常没有发生的时候代码逻辑 
finally:
	pass								# 无论异常有没有发生都会执行的代码,一般处理资源的关闭和释放

小作业:请自己尝试编写一段代码打印异常执行逻辑

四、如何自定义异常

如何自定义自己的异常?为什么需要定义自己的异常?
1.继承 Exception 实现自己的异常(想想为什么不是BaseException
2.给异常加上一些附加信息
3.处理一些业务相关的特定异常(raise MyException

代码示例:

class MyException(Exception):
	pass

try:
	raise MyException('my exception')
except Exception as e:
	print(e)

运行结果:
在这里插入图片描述
说明:
这里为什么不继承 BaseException呢?因为BaseException是所有异常的基类,如下图所示:
在这里插入图片描述
它同时还包括KeyboardInterruptKeyboardInterrupt表示按下Ctr+C时抛出异常,如果继承自BaseException,程序在运行时,无法通过按下Ctr+C来达到终止程序的目的。
所以一般业务的异常都会继承 Exception

以上是关于3-4 Python异常机制常考题的主要内容,如果未能解决你的问题,请参考以下文章

3-5 Python性能剖析与优化,GIL常考题

3-3 Python函数常考题

Python语言基础常考题

4-7 Python数据结构常考题之栈与队列

链表面试-删除链表中重复的节点(常考题)

4-5 Python数据结构常考题之链表