• 异常处理


    # 异常处理
    # 常见异常
    # SyntaxError 语法错误
    # AttributeError 试图访问一个对象没有的属性
    # IOError 输入/输出异常;基本上是无法打开文件
    # ImportError 无法引入模块或包;基本上是路径问题或名称错误
    # IndentationError 语法错误的子类;代码没有正确对齐
    # IndexError 下标索引超出序列边界
    # KeyError 试图访问字典中不存在的key
    # KeyboardInterrupt Ctrl+c被按下
    # NameError   使用一个还未被赋予对象的变量
    # TypeError 传入的对象类型与要求不符合
    # UnboundLocalError 试图访问一个还未被设置的局部变量 ,基本上是由于有另一个同名的全局变量,导致你以为正在访问它
    # ValueError  传入一个调用者不期望的值,即使值的类型是正确的
    
    # 异常处理的基本语法
    # try:
    #     被检测的代码块
    # except 异常类型:
    #     异常类型与异常一样,就执行这个位置的逻辑
    # except 异常类型:       上面的异常类型没有再找这里的异常类型
    #     异常类型与异常一样,就执行这个位置的逻辑
    # ……
    # else:
    #     当try内代码没有异常时会执行这个位置的逻辑
    # finally:
    #     无论异常与否,都会执行这个位置的逻辑
    
    s1 = 'hello'
    
    try:
        int(s1)
    except IndexError as e:
        print(e)
    except ValueError as e:
        print(e)
    except TypeError as e:
        print(e)
    
    # 万能异常类型 Exception
    
    s1 = 'hello'
    
    try:
        int(s1)
    except Exception as e:
        print(e)
    
    # 主动触发异常
    
    try:
        raise TypeError('类型错误')
    except Exception as e:
        print(e)
    
    # 自定义异常
    class MyException(BaseException):       # 自定义异常必须继承BaseException类
        def __init__(self, msg):
            self.msg = msg
    
    try:
        raise MyException('自定义异常')
    except MyException as e:
        print(e)
    
    # 断言  在程序的某个位置判断一下结果是不是想要的值,如果不是想要的值就抛出一个异常
    assert 1 == 1    # 有点类似于if,如果等式成立,执行它下面的代码
    
    # assert 1 == 2   # 如果等式不成立,抛出一个AssertionError的异常
  • 相关阅读:
    svn的差异查看器和合并工具换成BCompare.exe
    Java经典编程题50道之十四
    Java经典编程题50道之十三
    Java经典编程题50道之十二
    Java经典编程题50道之十一
    Java经典编程题50道之十
    Java经典编程题50道之九
    Java经典编程题50道之八
    Java经典编程题50道之七
    Java经典编程题50道之六
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9477415.html
Copyright © 2020-2023  润新知