• python学习日记 第一天


    python异常处理学习笔记

    '''
    异常类型:
    1.NameError..............未定义变量
    2.ZeroDivisionError......除数为零
    3.SyntaxError............语法错误
    4.IndexError.............访问不存在序列
    5.KeyError...............访问不存在键值
    6.FileNotFoundError......试图打开不存在文件
    7.AttributeError.........访问不存在对象属性
    捕获简单异常:
    try:
    语句块1
    except:
    语句块2
    若语句块1出现错误则进行语句块2
    捕获多个异常:
    try:
    语句1
    except 异常名称1:
    语句2
    except 异常名称2:
    语句3
    若语句1出现异常1则运行异常1代码,若语句1出现异常2则运行异常2代码
    捕获异常描述信息:
    try:
    语句块1
    except (异常名称1,异常名称2,..):
    语句块2
    若语句块1出现错误则进行语句块2
    捕获所有异常:
    try:
    语句1
    except Exception as result:
    print(" 出现异常:%s"%result)
    (Exception类表示所有异常)
    没有捕获到异常:
    try:
    语句1
    except:
    语句2
    else:
    语句3
    若语句1没有异常则执行完语句1后执行语句3
    终止行为:
    try:
    语句1
    except:
    语句2
    finally:
    语句3
    不管语句1是否错误都执行语句3(finally强制执行)
    异常处理完整语句:
    try:
    语句1
    except A:
    异常A处理代码
    except:
    其他异常处理代码
    else:
    没有异常处理代码
    finally:
    强制最后执行代码
    抛出异常(人为制造异常):
    raise 异常类 引发异常时会隐式地创建类对象
    raise 异常类对象 引发异常类对象对应异常
    raise 重新引发刚刚发生的异常
    raise 异常类("自定义描述信息")引发异常的同时输出异常信息
    except Exception as result:
    raise 异常类 from exception异常中抛出异常
    assert语句:
    assert 逻辑表达式,data data可选
    =
    if not 逻辑表达式:
    raise AssertionError(data)
    自定义异常:
    class ShortInputException(Exception) 创建一个继承Exception的类ShortInputException
    预定义清理:
    with语句(不管是否出现异常都会执行完with语句);
    with 上下文表达式 [as 资源对象]:
    对象操作
    上下文管理器:
    1.上下文管理协议:
    包含_enter_()和_exit_()方法
    _enter_(self):进入上下文表达式,将返回值放入as后的变量中
    _exit_(self,type,value,tb):离开上下文表达式,如果有异常,type为异常类型,value为异常的值,tb为异常的追踪信息
    如果没有异常,三个参数都为None,此方法返回值为True或False,分别指示引发的异常是
    否得到了解决如果返回False引发的异常会传递出上下文
    2.上下文管理器:
    支持上下文管理协议的对象,用于实现_enter_和_exit_方法.上下文管理器定义执行with语句时要建立的运行的上下文,
    负责执行with语句块上下文中的进入和退出操作.
    3.运行时上下文:
    由上下文管理器创建,通过上下文管理器的两个方法实现
    4.上下文表达式:
    with语句中在关键字with之后的表达式,该表达式要返回一个支持上下文管理协议的对象.
    异常处理小结:
    围绕python的异常,进行了异常的捕捉,处理,抛出,定义和预定义清理
    '''
    # try:
    # text=int(input("输入:"))
    # print(13/text)
    # except NameError:
    # print("有变量未定义")
    # except (ZeroDivisionError,ValueError):
    # print("除数不正确")
    # except Exception as result:
    # print(" 出现异常:%s"%result)
    # else:
    # print("程序没有错误")
    # finally:
    # print("程序结束")
    # try:
    # raise ZeroDivisionError("除数不能为零")
    # except Exception as result:
    # raise ZeroDivisionError("除数不能为零") from Exception
    # a=0;
    # assert a!=0,"a不能为零"
    # class ShortInputException(Exception):
    # def __init__(self,length,atleast):
    # self.length=length
    # self.atleast=atleast
    # try:
    # text=input("请输入密码:")
    # if(len(text))<3:
    # raise ShortInputException(len(text),3)
    # except EOFError:
    # print("你输入了一个结束标记")
    # except ShortInputException as result:
    # print("ShortInputException:输入长度是%d,长度至少为%d"%(result.length,result.atleast))
    # else:
    # print("没有发生异常")
  • 相关阅读:
    mysql concat_ws 与 concat 多字段模糊匹配应用
    logstash marking url as dead 问题解决
    IntelliJ IDEA(四) :Settings(上)
    IntelliJ IDEA(三) :常用快捷键
    IntelliJ IDEA(二) :面板介绍
    IntelliJ IDEA(一) :安装与破解(支持最新2020.1)
    Echo框架
    Goland 结构体提示tag
    Mock使用
    Postman文档导出
  • 原文地址:https://www.cnblogs.com/hz-garden/p/12779755.html
Copyright © 2020-2023  润新知