写代码的时候,对于那些不确定会报什么错误或者说感觉可能会报错的地方,才会用到异常处理。但是切记,一般情况下不要用,毕竟这玩意影响代码的可读性,毕竟是你写代码的时候附加的逻辑。
正本清源
很多人以为只有try .. except这种代码逻辑才是异常处理,我只能说大傻逼,懂个锤子。
难道if .. elif .. else这种形式就不是异常处理了???啊?回答我。
言归正传,其实if和except两种方式都可以,只不过建议用except,因为更简洁。
直接上代码:
try:
num=input('请输入一个数字:')
int(num)
except ValueError as e:
print(e)
输出:
D:\python_s3\pythonProject\pythonProject\.venv\Scripts\python.exe D:\python_s3\pythonProject\pythonProject\day29\test.py
请输入一个数字:dlja
invalid literal for int() with base 10: 'dlja'
Process finished with exit code 0
上面的代码还可以改成多分支的情况:
try:
num=input('请输入一个数字:')
int(num) #主函数
except ValueError as e:
print(e)
except KeyError as e:
print(e)
#下面这条是万能语句,意思是上面那两个except都对应不上,直接找Exception。也可以直接用Exception
except Exception as e:
print(e)
#下面的else和if..else中的else完全是两个概念,这里的else是指当try中的内容没有报错时执行else的内容。
else:
print('当主函数没有报错时执行')
finally:
print('不管主函数有没有报错,这条语句都会执行')
其实异常处理的内容一般情况下也不使用,会用就行了。
接下来,再教给你们一个高端玩法,自定义一个异常,看好了。
class MyExcept(BaseException):
def __init__(self,msg):
self.msg=msg
raise MyExcept('自制的异常类型')
输出结果:
Traceback (most recent call last):
File "D:\python_s3\pythonProject\pythonProject\day29\test.py", line 5, in <module>
raise MyExcept('自制的异常类型')
__main__.MyExcept: 自制的异常类型
关于异常处理的部分就讲到这里。
标签:知识点,pythonProject,处理,except,else,报错,print,异常 From: https://www.cnblogs.com/kkbest/p/18342149