• 异常处理


    异常处理

    一、基本介绍

    异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下:
    千锋云计算杨哥团队

    二、异常的种类

    # 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
    AttributeError 
    
    例如:
    s = 'lenovo'
    
    print(s.shark)
    # 输入/输出异常;基本上是无法打开文件
    IOError 
    
    # 无法导入模块或包;基本上是路径问题或名称错误
    ImportError 
    
    # 缩进错误) ;代码没有正确对齐
    IndentationError 
    
    例如:
    if 1 == 1:
    print(110)
    
    # 下标索引超出序列边界,比如当 li 只有三个元素,却试图访问 li[5]
    IndexError 
    
    例如:
    li = [1, 2]
    li[10]
    
    # 试图访问字典里不存在的键
    KeyError 
    
    例如:
    d = {'a': 1}
    d['b']
    
    #  按了一下 Ctrl+C
    KeyboardInterrupt
    
    # 使用一个还未被赋予对象的变量
    NameError 
    
    例如: 
    print(n)
    
    # 无效语法,语法错误
    SyntaxError 
    例如:
    if  1 == 1
        print('ok')
    

    三、处理异常的语句

    1. 基本语法

    try:
        被检测的代码块
    except 异常类型:
        try中一旦检测到异常,就执行这个位置的逻辑
    

    示例:

    try:
        w = s[8]
    except IndexError as e:
        pass
    print("程序继续运行")
    

    不用的异常应该使用对其的异常类类型进行捕获。

    try:
        w = ss[9]
    except IndexError as e:
        print(e)
    
    使用万能异常 Exception
    try:
        w = ss[9]
    except Exception as e:
        print(e)
    

    四、生产环境如何处理异常

    Python程序的traceback信息均来源于一个叫做traceback object的对象,而这个traceback object通常是通过函数sys.exc_info()来获取的

    使用 traceback 异常返回信息更加详细,更容易找到问题的根源。

    format_exc() 返回字符串类型
    
    import traceback
    
    print('start-->')
    try:
        1 + 'a'
    except TypeError as e:
        print(e)
        print('*' * 30)
        print(traceback.format_exc())
        print('*' * 20)
    
    print('end')
    
  • 相关阅读:
    java中判断文件存在与否
    crontab安装以及定时任务的执行
    su命令学习
    linux中如何查看哪些用户允许登录
    linux中的压缩文件的格式
    R语言学习(瑞士军刀)
    linux下mysql导入导出sql文件
    创建线程池的7种方法
    docker运行tomcat
    Docker之镜像
  • 原文地址:https://www.cnblogs.com/pengpengboshi/p/15591212.html
Copyright © 2020-2023  润新知