python基础——异常处理

异常处理

语法

普通的异常处理

try:
可能发生错误的代码
except:
如果出现异常,执行的代码

捕获特定异常

try:
可能发生错误的代码
except 异常类型:
如果捕获到该异常类型执行的代码

try:
    print(num)  # 未定义变量num
except NameError:
    print('错误类型是NameError')
try:
    print(1/0)
except NameError:
    print('错误类型是NameError')
except ZeroDivisionError as e:
    print(f'错误原因是{e}')

else 与 finally

try:
    代码1
except Exception as e:
    print(f'错误类型是Exception:{e}')
else:            #当没有发生异常,就执行else
    print('没有报错')
finally:        #无论有没有异常,都会执行finally
    print('这一行运行了')

应用例子

while True:
    num = input('请输入一个小数')

    try:
        num = float(num)
    except:
        print('你输入的数不是一个小数,请重新输入')

抛出异常 raise

raise Exception('这里报错了') # 会直接抛出异常,报错

自定义异常类型

class PwdNotMatchError(Exception):
    def __init__(self, pwd):
        self.pwd = pwd

    def __str__(self):
        return(f'密码{self.pwd}不正确')

user_pwd = input('请输入你的密码')
if user_pwd != 'pwd':
    raise PwdNotMatchError(user_pwd)
else:
    print('密码正确')

断言

assert 1+1 == 2, "表达式错误" #为True时,不会报错

assert 1+1 == 3, "表达式错误" #为False时,会抛出报错
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容