异常捕获
什么是异常
- 异常是程序运行时可能发生的错误或意外情况。在Python中,异常是一种对象,表示程序执行期间发生的错误。
- 当出现异常时,程序的正常流程会被中断,而是跳转到异常处理流程。
异常分类
-
内建异常(Built-in Exceptions):由Python内部定义的异常,例如
ZeroDivisionError
、NameError
等。 -
用户自定义异常:由程序员自己定义的异常,用于满足特定的业务需求。
异常分类
【一】异常捕获语法
try: 可能会发生异常的代码块 # Exception : 任意异常类型都会被捕获到,并且赋值给变量e except Exception as e: # 展示异常原因 print(e)
【1】不指定错误类型,只捕获异常
try:
print(int('abc'))
except:
print(f'报错了')
【2】指定确认的异常类型,并捕获
try:
print(int('abc'))
except ValueError as e:
print(e)
#invalid literal for int() with base 10: 'abc'
【3】无论是什么异常,都会被捕获到,并且输出(except Exception as e:)
try:
print(int('abc'))
except Exception as e:
print(e)
【4】异常分支语句
'''
try:
# 正常的操作
...
except:
# 发生异常,执行这块代码
...
else:
# 如果没有异常执行这块代码
...
'''
【5】无论是否发生异常都将执行最后的代码
'''
try:
# 正常执行的代码
...
except:
# 发生异常,执行这块代码
finally:
#退出try时总会执行
...
'''
【6】用raise 主动触发异常
try:
#对的信息会触发下面raise语句
print(int('123'))
raise ValueError("这是一个错误")
except Exception as e:
print(f"这是异常 {e}")
# 循环遇到异常也会停止运行
while True:
raise ValueError('这是一个错误')
【7】自定义异常
class MyException(BaseException):
def __init__(self, args):
print(f'MyException :>>>> {args}')
# def __new__(cls, *args, **kwargs):
# print(f'这是 MyException抛出的异常 ')
try:
raise MyException('这是自己的异常')
except Exception as e:
print(f"这是错误 {e}")
断言
- assert condition, message
condition:断言的条件,如果为False,则触发异常。
message:可选参数,用于指定触发异常时的错误消息。
username = input('请输入用户名:>>>> ').strip()
assert 'hope' in username, '必须带hope'
标签:Exception,捕获,except,try,print,异常
From: https://www.cnblogs.com/banchengyanyu/p/17879801.html