zoukankan      html  css  js  c++  java
  • 异常处理其他内容

    主动抛出异常

    语法:raise 异常种类(异常信息)

    age = input("请输入你的年龄:")
    if not age.isdigit():
        raise TypeError("年龄是整形")#这样就提前预知错的发生
    print("十年后,你%s"%(int(age)+10))#若不规范输入就会抛出异常

    用raise 抛出的异常也可使用try except接受

    try:
        age = input("请输入你的年龄:")
        if not age.isdigit():
            raise TypeError("年龄是整形")  # 这样就提前预知错的发生
        print("十年后,你%s" % (int(age) + 10))  # 若不规范输入就会抛出异常
    except Exception:
        print("出错了")

    断言:

    可以理解为理解断定,就是很清楚 很明确的

    什么时候使用断言

    下面的代码必须依赖上面代码的正确性

    语法

    assert 结果为BOOL的表达式

    如果值为True则继续往下执行

    为False抛出一个AssertionError 表示断言失败

    没有assert也可以使用if来实现效果,但是assert节省代码。

    li = []
    li.append("aa")
    li.append("aa")
    assert len(li)>3
    print(next(li))
    print(next(li))
    print(next(li))
    
    #

    自定义异常类型

    当系统提供的异常类型,中并没有你想要的错误匹配,这时候就需要自定义异常类型的

    语法:

    class 自定义异常的类名(BaseException):

    总结的来说:之所以自定义异常类型,是为了更具体描述你的错误,让使用者一眼就看出来

    定义:

    class UnLikeErroe(BaseException):
        def __init__(self, msg):
            self.msg = msg

    使用跟其他异常相同:

    def haha():
        yuyan = input("请输入你想说的话:")
        if yuyan == "chinese":
            print("正好听")
        else:
            raise UnLikeErroe("再说一遍")

    再try   exception 异常类名  使用 as可以接受异常对象

    try:
        haha()
    except UnLikeErroe as unlike:  # unlike 就是异常对象起别名
        print(unlike)

    异常处理的使用场景

    不应该滥用try except

    什么时候用?

    如果你知道为什么出错,应该把代码修改正确,而不是加上try except。只有当你不清楚为什么异常的时候!这时候才使用try except

  • 相关阅读:
    Ansible inventory(主机清单的静态文件)
    Ansible的安装和命令的介绍
    ansible的介绍
    python笔记---day4
    zabbix 监控 linux的防火墙是否运行
    python笔记---day3
    python笔记---day2
    Pytorch_第十篇_我对卷积神经网络(CNN)的理解(包含例子)
    Pytorch_第九篇_神经网络中常用的激活函数
    Pytorch_第八篇_深度学习 (DeepLearning) 基础 [4]---欠拟合、过拟合与正则化
  • 原文地址:https://www.cnblogs.com/msj513/p/9890249.html
Copyright © 2011-2022 走看看