Python学习之旅--异常

Posted 赵jc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之旅--异常相关的知识,希望对你有一定的参考价值。

1, 异常

  • 目的: 知道异常的作用和编写格式

  • 操作流程

    #1,异常处理的第一种形式, try..except
    # try:
    #     1 / 0
    #     print("try...可能出现问题的代码")
    # except Exception:
    #     print("except..出现问题之后,在这里进行处理")
    
    #2,异常处理的第二种格式, try..except...finally
    # 不管程序是否有问题,finally中的代码都会执行
    # try:
    #     # 1 / 0
    #     print("try...可能出现问题的代码")
    # except Exception:
    #     print("except..出现问题之后,在这里进行处理")
    # finally:
    #     print("做一些收尾的工作,比如文件关闭流,关闭数据库连接")
    
    #, 异常处理的第三种方式: try..except..else
    # else: 程序没有出异常的时候执行
    try:
        1 / 0
        print("try...可能出现问题的代码")
    except Exception:
        print("except..出现问题之后,在这里进行处理")
    else:
        print("如果没有出问题,走的代码")
    

2, 自定义异常

  • 目的: 可以自定义异常捕获错误

  • 操作流程

    """
    自定义异常:
        1, 当程序提供的异常满足不了我们自己需求的时候自定义
        2, 自定义异常需要继承自系统的Exception
    """""
    
    class MyNumberException(Exception):
        def __init__(self,min,max):
            self.min = min
            self.max = max
    
    try:
        # num = 1/ 0
        # raise ZeroDivisionError("division by zero aaaaaa")
        number = input("请输入一个整数:")
        number = int(number)
        if not 10 <= number <= 100: # 输入的值需要在10-100的范围
            raise MyNumberException(10,100)
    except ZeroDivisionError as e: # 捕捉不了, 就会继续向下捕捉
        print(e)
    except MyNumberException as e: # 一旦捕捉,如果还有其他的except不会调用
        print("请输入的数值在,,之间".format(e.min,e.max))
    except Exception as e:
        print("......")
    
    
    • 注意点:
      • 1, except一旦捕获当异常之后, 不会向下继续捕获
      • 2, 手动抛出异常信息, raise 异常类

以上是关于Python学习之旅--异常的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之旅--异常

Python学习之旅---post请求方法异常处理cookie模拟登陆

Python学习之旅---上下文管理协议

Python学习之旅

Python工程师学习之旅

python之旅第八篇--异常