zoukankan      html  css  js  c++  java
  • 异常处理

    # 异常处理
    # 常见异常
    # 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的异常
  • 相关阅读:
    Paratroopers 最大流问题 dinic算法 水平有待提高
    Food Delivery 区间dp
    D
    Codeforces 1282A Temporarily unavailable
    PAT 顶级 1017 The Best Peak Shape (35分)(最长上升子序列)
    POJ 2217 Secretary(后缀数组+高度数组)
    团体程序设计天梯赛 L1-011~L1-015
    PAT顶级解题目录
    PAT顶级 1005 Programming Pattern (35分)(后缀数组+基数排序 或 字符串哈希)
    团体程序设计天梯赛 L1-006~L1-010
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9477415.html
Copyright © 2011-2022 走看看