zoukankan      html  css  js  c++  java
  • python语法基础-异常操作-长期维护

     ###############    python-异常的操作  ###############

    # 异常:python解释器遇到一个错误,会停止程序的执行,并且提示错误信息,这就是异常,
    # 抛出异常:python停止程序,提示错误,这就是抛出异常
    # 捕获异常:
    # 捕获异常的语法:
    # try:
    #   尝试执行的代码
    # except:
    #   出现错误的处理
    try:
        num=int(input('请输入一个整数:'))
    except:
        print('请输入正确的整数')
    print('------------')  # 无论上面的代码是否有错误,都会执行下面的代码,
    # 错误类型捕获
    # 抛出的异常可能是不同类型的错误,我们需要对不同的错误类型,做出不同的响应,
    # 在python抛出异常的最后一行的第一个单词就是捕获的错误类型,
    # 捕获错误类型的语法:
    # try:
    #   尝试执行的代码
    # except 错误类型1:
    #   出现错误的处理
    # except (错误类型2,错误类型3):
    #   出现多个错误的处理
    # except Exception as result:# 捕获未知错误,未知错误就是没有预判到的错误,这是非常固定的语法!!
    #   print('未知错误%s'%result)
    
    try:
        num=int(input('请输入一个整数'))
        result=8/num
        print(result)
    except ZeroDivisionError:
        print('输入不能是0')
    except ValueError:
        print('输入必须是整数')
    except Exception as result:
      print('未知错误%s'%result)
    
    # 总结:
    # 捕获异常的完整语法:
    # try:
    #   尝试执行的代码
    # except 错误类型1:
    #   出现错误的处理
    # except (错误类型2,错误类型3):
    #   出现多个错误的处理
    # except Exception as result:# 捕获未知错误,未知错误就是没有预判到的错误,这是非常固定的语法!!
    #   print('未知错误%s'%result)
    # else:
    #   没有异常才会执行的代码
    # finally:
    #   不管有没有异常都会执行的代码

     ###############    常见异常  ###############

    """
    
    AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
    IOError 输入/输出异常;基本上是无法打开文件
    ImportError 无法引入模块或包;基本上是路径问题或名称错误
    IndentationError 语法错误(的子类) ;代码没有正确对齐
    IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError 试图访问字典里不存在的键
    KeyboardInterrupt Ctrl+C被按下
    NameError 使用一个还未被赋予对象的变量
    SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError 传入对象类型与要求的不符合
    UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
    ValueError 传入一个调用者不期望的值,即使值的类型是正确的
    
    
    """

     ###############    主动触发异常  ###############

    try:
        raise TypeError('类型错误')
    except Exception as e:
        print(e)

     ###############    自定义异常  ###############

    class xxxException(BaseException):
        def __init__(self,msg):
            self.msg = msg
        def __str__(self):
            return self.msg
    
    try:
        raise xxxException("123")
    except xxxException as e:
        print(e)
    
    
    # 第二种方式
    def func():
        try:
            for i in range(5):
                if i > 2:
                    raise Exception("数字大于2了")
        except Exception as e:
            print(e)
    
    func()

    ##############################################

    ############################################

  • 相关阅读:
    前端面试题(转载)
    郝兽医
    声明,本博客文章均为转载,只为学习,不为其他用途。感谢技术大牛的技术分享,让我少走弯路。
    ajax登陆+验证码(转载)
    新手机号
    明天回家
    ERP的灵魂-业务过程
    那些父母要求我们做的事
    出租车上的糗事
    管人管到心
  • 原文地址:https://www.cnblogs.com/andy0816/p/12289722.html
Copyright © 2011-2022 走看看