Python 异常处理

EN
EN
2023-04-04 / 0 评论 / 91 阅读 / 正在检测是否收录...
异常捕获完整代码
try:
    pass
except A:
    # 针对错误类型A 代码处理
    pass
except B:
    # 针对错误类型B 代码处理
    pass
except C:
    # 针对错误类型C 代码处理
    pass
else:
    #没有异常才会执行的代码。只有在没有异常时才会执行的代码
    pass
finally:
    # 无论是否有异常 都会执行这里的代码
    pass

异常捕获

try:
    num = int(input("输入数字:"))
    print(num)
except:
    # 如果输入英文控制台 会执行这里。控制台不会报错
    print("输入错误")

异常错误类型捕获

针对不能的异常错误,做不同的处理(执行不同的代码)

try:
    num = int(input("输入数字:"))   # 如果输入英文 会报ValueError
    reslut = 8 / num                # 如果输入0 会报ZeroDivisionError
    print(reslut)
  
except ValueError:
    print("请输入整数")
except ZeroDivisionError:
    print("不能为0")

异常传递

def demo1():
    return int(input("请输入整数"))

def demo2():
    return demo1()

# 在主程序中添加异常处理
if __name__ == "__main__":
    try:
        demo2()
    except Exception as e:
        print(f'报错了!{e}')

#输出信息
'''
请输入整数a
报错了!invalid literal for int() with base 10: 'a'
'''

主动抛出异常

def input_pass():
    pwd =  input("请输入密码")

    # 判断密码长度,小于6位数抛出异常
    if len(pwd) < 6:
        print("主动抛出异常")
        # 主动抛出异常
        ex = Exception("密码长度不够")
        raise ex
    return pwd

if __name__ == '__main__':
    try:
        pwd =  input_pass()
        print(f"{pwd} 密码输入正确")
    except Exception as e:
        print(e)
0

评论 (0)

取消