精华内容
下载资源
问答
  • 程序异常崩溃时会提供非常详细的错误信息,掌握正确的分析方法,就可以快速定位问题并解决问题,下面这段代码会引发异常导致程序终止 def func_tet(): func_sum('4', 3) def func_sum(a, b): value = a + b ...

    程序异常崩溃时会提供非常详细的错误信息,掌握正确的分析方法,就可以快速定位问题并解决问题,下面这段代码会引发异常导致程序终止

    def func_tet():
        func_sum('4', 3)
    
    
    def func_sum(a, b):
        value = a + b
        return value
    
    
    func_tet()

    运行这段程序,异常信息如下

    我将异常信息分为两部分,分析时,先关注最后一行绿色框内的信息,这里的信息明确的指明了异常的类型和异常的解释信息,这是我们分析问题的第一步,随着经验的积累,你很容就能通过异常信息分析出为何会发生异常。


    异常信息的第二部分,就是蓝色框内的内容,是调用堆栈信息,详细的记录了程序的执行路径,最后一行正是错误发生的位置。

    现在,既有出错代码的位置,又有错误的类型与解释,如果还是不能找出问题,那么,可以百度了,百度时将最后一行绿色框里的内容作为搜索词进行搜索,可以找到大量文章。

    其实,异常并不可怕,异常也不是无穷无尽的,下面是pyhton中的所有异常以及他们之间的继承关系

    BaseException
     +-- SystemExit
     +-- KeyboardInterrupt
     +-- GeneratorExit
     +-- Exception
          +-- StopIteration
          +-- StopAsyncIteration
          +-- ArithmeticError
          |    +-- FloatingPointError
          |    +-- OverflowError
          |    +-- ZeroDivisionError
          +-- AssertionError
          +-- AttributeError
          +-- BufferError
          +-- EOFError
          +-- ImportError
          |    +-- ModuleNotFoundError
          +-- LookupError
          |    +-- IndexError
          |    +-- KeyError
          +-- MemoryError
          +-- NameError
          |    +-- UnboundLocalError
          +-- OSError
          |    +-- BlockingIOError
          |    +-- ChildProcessError
          |    +-- ConnectionError
          |    |    +-- BrokenPipeError
          |    |    +-- ConnectionAbortedError
          |    |    +-- ConnectionRefusedError
          |    |    +-- ConnectionResetError
          |    +-- FileExistsError
          |    +-- FileNotFoundError
          |    +-- InterruptedError
          |    +-- IsADirectoryError
          |    +-- NotADirectoryError
          |    +-- PermissionError
          |    +-- ProcessLookupError
          |    +-- TimeoutError
          +-- ReferenceError
          +-- RuntimeError
          |    +-- NotImplementedError
          |    +-- RecursionError
          +-- SyntaxError
          |    +-- IndentationError
          |         +-- TabError
          +-- SystemError
          +-- TypeError
          +-- ValueError
          |    +-- UnicodeError
          |         +-- UnicodeDecodeError
          |         +-- UnicodeEncodeError
          |         +-- UnicodeTranslateError
          +-- Warning
               +-- DeprecationWarning
               +-- PendingDeprecationWarning
               +-- RuntimeWarning
               +-- SyntaxWarning
               +-- UserWarning
               +-- FutureWarning
               +-- ImportWarning
               +-- UnicodeWarning
               +-- BytesWarning
               +-- ResourceWarning

    勤思考,勤百度,注意积累,很快就能轻松解决大部分异常

     

    关注微信公众号,更多python干货分享

    展开全文
  • Python异常处理和异常类型

    万次阅读 2015-09-21 18:58:26
    Python异常处理和异常类型目录 Python异常处理和异常类型 目录 python2x捕获异常语法 python3x捕获异常语法 python常见的异常类型 NameError尝试访问一个未申明的变量 ZeroDivisionError除数为0 SyntaxError语法错误...

    python2.x捕获异常语法:

    try:
        ...some functions...
    except Exception, e:
        print(e)

    python3.x捕获异常语法:

    try:
        ...some functions...
    except Exception as e:
        print(e)

    注意这里 Exception, e 变成了 Exception as e

    python常见的异常类型

    1. NameError:尝试访问一个未申明的变量

    >>> v
    NameError: name 'v' is not defined

    2. ZeroDivisionError:除数为0

    >>> v = 1/0
    ZeroDivisionError: int division or modulo by zero

    3. SyntaxError:语法错误

    int int
    SyntaxError: invalid syntax (<pyshell#14>, line 1)

    4. IndexError:索引超出范围

    List = [2]
    >>> List[3]
    Traceback (most recent call last):
      File "<pyshell#18>", line 1, in <module>
        List[3]
    IndexError: list index out of range

    5. KeyError:字典关键字不存在

    Dic = {'1':'yes', '2':'no'}
    >>> Dic['3']
    Traceback (most recent call last):
      File "<pyshell#20>", line 1, in <module>
        Dic['3']
    KeyError: '3'

    6. IOError:输入输出错误

    >>> f = open('abc')
    IOError: [Errno 2] No such file or directory: 'abc'

    7. AttributeError:访问未知对象属性

    >>> class Worker:
     def Work():
      print("I am working")
    
    >>> w = Worker()
    >>> w.a
    Traceback (most recent call last):
      File "<pyshell#51>", line 1, in <module>
        w.a
    AttributeError: 'Worker' object has no attribute 'a'

    8.ValueError:数值错误

    >>> int('d')
    Traceback (most recent call last):
      File "<pyshell#54>", line 1, in <module>
        int('d')
    ValueError: invalid literal for int() with base 10: 'd'

    9. TypeError:类型错误

    >>> iStr = '22'
    >>> iVal = 22
    >>> obj = iStr + iVal;
    Traceback (most recent call last):
      File "<pyshell#68>", line 1, in <module>
        obj = iStr + iVal;
    TypeError: Can't convert 'int' object to str implicitly

    10. AssertionError:断言错误

    >>> assert 1 != 1
    Traceback (most recent call last):
      File "<pyshell#70>", line 1, in <module>
        assert 1 != 1
    AssertionError

    11.MemoryError:内存耗尽异常

    12. NotImplementedError:方法没实现引起的异常

    class Base(object):
        def __init__(self):
            pass
    
        def action(self):
            #抛出异常,说明该接口方法未实现
            raise NotImplementedError

    13. LookupError:键、值不存在引发的异常

    LookupError异常是IndexError、KeyError的基类, 如果你不确定数据类型是字典还是列表时,可以用LookupError捕获此异常

    14. StandardError 标准异常

    除StopIteration, GeneratorExit, KeyboardInterrupt 和SystemExit外,其他异常都是StandarError的子类。

    错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束。

    展开全文
  • python程序异常处理

    2020-05-28 17:33:35
    python异常信息中最重要的部分是异常类型,它表明发生异常原因,也是程序处理异常的依据。 python使用try-except语句实现异常处理,其基本语法格式: try: <语句块1> except <异常类型>: <语句块2&...

    1、异常处理:try-except语句

    在这里插入图片描述
    在这里插入图片描述
    python异常信息中最重要的部分是异常类型,它表明发生异常原因,也是程序处理异常的依据。
    python使用try-except语句实现异常处理,其基本语法格式:

    try:
       <语句块1>
    except <异常类型>:
       <语句块2>
    

    为上述小程序增加异常处理:

    try:
        num = eval(input("请输入一个整数:"))
        print(num**2)
    except NameError:
        print("输入错误,请输入一个整数!")
    

    结果为:

    =
    请输入一个整数:NO
    输入错误,请输入一个整数!
    >>> 
    

    2、异常和错误
    编程语言的异常和错误是两个相似但不同的概念。
    异常(checked exception):可以预见的例外情况,例如程序期望获得数字输入却得到了其他字符输入、打开一个不存在的文件等。
    错误(unchecked exception):一些因为程序编码逻辑产生的不可预见的例外情况,错误发生后程序无法恢复执行。
    3、异常的高级用法
    try-except语句可以支持多个except语句,语法格式如下:

    try:
        <语句块1>
    except <异常类型1>:
        <语句块2>
    ...
    except <异常类型N>:
        <语句块N+1>
    except:
        <语句块N+2>
    
      其中,第1到第N个except语句后面都指定了异常类型,说明这些except所包含的语句块只处理这些类型的异常。最后一个except语句没有指定任何类型,表示它所对应的语句块可以处理所有其他异常。
    

    除了try和except保留字外,异常语句还可以与else和finally保留字配合使用,语法格式如下 :

    try:                   #放置最想要检测的部分
        <语句块1>
    except <异常类型1>:     #放置想要捕获的异常,以及出现异常后的处理
        <语句块2>
    else:                   #放置不出现异常时要执行的部分
        <语句块3>
    finally:                #放置无论如何都要执行的部分
        <语句块4>
    

    实例:

    try:
        alp = "ABCDEFGHIJKLMNOPQRSUVWXYZ"
        idx = eval(input("请输入一个整数:"))
        print(alp[idx])
    except NameError:
        print("输入错误,请输入一个整数!")
    else:
        print("没有发生异常。")
    finally:
        print("程序执行完毕。")
    

    结果为:

    =
    请输入一个整数:5
    F
    没有发生异常。
    程序执行完毕。
    >>> 
    =============== RESTART: F:/软件/python/练习1/text4/try-except.py ===============
    请输入一个整数:NO
    输入错误,请输入一个整数!
    程序执行完毕。
    >>> 
    

    总结:
    python能识别多种异常类型,但不建议编写程序时过度依赖try-except这种异常处理机制。try-except异常一般只用来检测极少发生的情况,例如,用户输入的合规性或文件打开是否成功等。面对商业应用的软件产品,稳定性和可靠性是最重要的衡量指标之一。即使这类产品也不会滥用try-except类型语句。因为采用try-except语句会影响代码的可读性,增加代码维护难度,因此,一般只在关键地方采用try-except类型的语句处理可能发生的异常。

    展开全文
  • python异常捕获的完整语法 try: # 尝试执行的代码 pass except 错误类型: #针对错误类型,对应的代码处理 except Except as e: # e 是一个变量 print(“未知错误”, e) else: # 没有异常才会执行的代码 pass ...

    python中异常捕获的完整语法

     try:
     	# 尝试执行的代码
     	pass
     except 错误类型:
     	#针对错误类型,对应的代码处理
     except Except as e:   # e 是一个变量,用于记录错误类型
     	print("未知错误", e)
     else:
     	# 没有异常才会执行的代码
     	pass
     finally:
     	# 无论是否有异常都会执行的代码
     	pass
    

    pass 是一个空语句,不做任何事,一般用做占位语句,是为了保持程序运行的完整性。

    python抛出异常

    • python使用raise语句抛出一个指定异常
    raise TypeError("参数类型不正确")
    

    代码执行结果为:
    在这里插入图片描述

    python assert(断言)

    • python assert(断言)用于判断一个表达式,只有在表达式结果为False的时候触发异常
    1. assert语法格式:
        assert 表达式
    

    等价于:

    if not 表达式:
    	raise AssertionError
    
    1. assert 后面可以加参数:
    assert 表达式 [, 参数]
    

    等价于:

    if not 表达式:
    	raise AssertionError(参数)
    
    • 实例1:
    assert True
    

    代码执行结果:
    在这里插入图片描述

    • 实例2:
    assert False
    

    代码执行结果:
    在这里插入图片描述

    • 实例3:
    assert 1 == 1
    

    代码执行结果:
    在这里插入图片描述

    • 实例4:
    assert 1 == 2
    

    代码执行结果:
    在这里插入图片描述

    • 实例5:
    assert 1 == 2, "1 和 2 不相等"
    

    代码执行结果:
    在这里插入图片描述

    python常见的异常类型

    • BaseException 是所有异常的基类
    • Exception 是常规错误的基类

    python标准异常类型

    异常名称 异常描述
    SystemExit 解释器请求退出
    Keyboardlnterrupt 用户请求中断执行(通常输入Ctrl + C)
    Stoplteration 迭代器没有更多的值
    StandardError 所有的内建标准异常的基类
    GeneratorExit 生成器(generator)发生异常来通知退出
    ArithmeticError 所有数值计算错误的基类
    FloatingPointError 浮点数计算错误
    OverflowError 数值运算超出最大限制
    ZeroDivisionError 除零错误
    AssertionError 断言语句失败
    AttributeError 对象没有这个属性
    EOFError 没有内建输入,到达EOF标记
    EnvironmentError 操作系统错误的基类
    IOError 输入/输出操作失败
    OSError 操作系统错误
    WindowsError 系统调用错误
    ImportError 导入模块/对象失败
    LookupError 无效数据查询的基类
    IndexError 序列中没有此索引(index)
    KeyError 映射中没有这个键
    MemorryError 内存溢出错误
    NameError 未声明/初始化对象(没有属性)
    UnboundLocalError 访问未初始化的本地变量
    ReferenceError 弱引用(weak reference)试图访问已经回收的对象
    RuntimeError 一般运行时错误
    NotlmplementedError 尚未实现的方法
    SyntaxError python语法错误
    IndentationError 缩进错误
    TabError Tab和空格混用
    SystemError 一般解释器系统错误
    TypeError 对类型无效的操作
    ValueError 传入无效的参数
    UnicodeError Unicode 相关的错误
    UnicodeDecodeError Unicode 解码时错误
    UnicodeEncodeError Unicode 编码时错误
    UnicodeTranslateError Unicode 转换时错误

    警告异常

    • Warning 警告的基类
    警告异常 异常描述
    DeprecationWarning 关于被弃用的特征的警告
    FutureWarning 关于构造将来语义会有改变的警告
    OverflowWarning 旧的关于自动提升为长整形(long)的警告
    PendingDeprecationWarning 关于特征将会被遗弃的警告
    RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
    SyntaxWarning 可疑的语法的警告
    UserWarning 用户代码生成的警告
    展开全文
  • """异常处理函数 传入一个可迭代对象,处理参数传入错误情况 :paramtype_list:一个可迭代对象 """ try: for i in type_list: print(i) except: print("不是可迭代对象") else: print("...
  • python异常类型列表

    千次阅读 2018-09-24 18:00:04
      1. NameError:尝试访问一个未申明的变量 ...9. TypeError:类型错误 ...错误检测与异常处理区别在于:错误检测是在正常的程序流中, 处理不可预见问题的代码 ,例如一个调用操作未能成功结束
  • python自定义异常_Python自定义异常

    千次阅读 2020-07-05 22:24:52
    python自定义异常In this tutorial we are going to learn about Python Custom Exception. If you don’t know about Python Exception Handling, we suggest you to read the previous tutorial. 在本教程中,我们...
  • python异常处理

    万次阅读 2018-08-10 22:22:36
    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准...
  • python 常见的异常类型

    千次阅读 2018-12-26 09:50:58
    python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit...
  • python自定义异常

    2019-09-07 10:58:30
    利用python定义你自己的异常类型
  • Python2 异常处理

    千次阅读 2019-01-28 09:36:30
    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序异常处理 断言(Assertions) python标准异常异常名称 描述 BaseException 所有异常的...
  • python 异常类型(比较全)

    千次阅读 2020-02-07 21:44:01
    异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 ...生成器(generator)发生异常来通知退出 ...Python...
  • Python——异常

    千次阅读 2018-09-07 00:55:57
    2. 一般情况下,Python无法正常处理程序时就会发生一个异常。 3. 异常Python 对象,表示一个错误。当 Python 脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 4. 每一个异常都是一些类的实例,这些...
  •  如果你在写程序时遇到异常后想进行如下处理的话请参考我下面写的对异常处理的方法: 假设有下面的一段程序: try:  语句1  语句2  .  语句N except .........:  print .....
  • Python常见异常Exception

    千次阅读 2019-01-10 20:59:04
    异常——Python解释器检测到错误时会中止程序执行并报告错误类型 Python中用异常对象表示异常情况,遇到错误时如果异常对象没有被捕捉或处理,则程序会用回溯或跟踪即traceback 查看常见异常类 dir(builtins)...
  • python打印异常信息

    千次阅读 2018-05-02 18:45:30
    下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try…except…程序结构。如下所示 try: … exceptException, e: … 1、str(e) 返回字符串类型,只给出异常信息,不包括异常信息的...
  • python教程 异常处理

    2019-03-09 15:38:59
    python异常异常处理一、什么...由于代码bug引起程序的崩溃就视为异常情况,例如:除零运算、参数类型不对等等。 异常处理有三种方式: 1、try/except方式 使用try/except来处理异常,使用方式如下,当发生异常时...
  • python标准异常和自定义异常

    千次阅读 2018-06-09 17:18:23
    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 1.异常处理: 本站Python教程会具体介绍。 2.断言(Assertions):本站Python教程会具体介绍。 python...
  • 一、错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) ...异常种类:在python中不同的异常可以用不同的类型(py...
  • Python程序设计题库

    万次阅读 多人点赞 2020-03-28 17:39:40
    Python程序设计》题库 一、 填空题 1、 Python安装扩展库常用的是_工具。(pip) 2、 Python标准库math中用来计算平方根的函数是____。(sqrt) 3、 Python程序文件扩展名主要有__和两种,其中后者常用于GUI程序...
  • Python-程序异常处理

    2019-04-11 20:39:27
    一般情况下,在Python无法正常处理程序时就会发生一个异常异常Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 举个例子: num = eval(input("please input a ...
  • python3 异常异常处理

    千次阅读 2017-10-27 22:04:27
    异常对象可以被处理、捕获,避免程序终止执行。 内建异常python3.5 官网手册Exception 所有异常的基类AttributeError 特征引用或者赋值失败时引发的IOError 试图打在不存在的文件(包括其他情况)IndexError 使用...
  • Python 捕获异常

    2018-01-02 11:25:22
    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。...except 异常类型: 处理语句 else: 没有异常才会执行的代码 finall: 不管有没有异常都会执行的代码 tr
  • Python标准异常异常处理详解

    千次阅读 2016-12-04 13:45:48
    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 1.异常处理: 本站Python教程会具体介绍。 2.断言(Assertions):本站Python教程会具体介绍。
  • Python——异常基础

    千次阅读 2016-02-25 14:48:51
    本文介绍了Python异常的基础,提出了5个处理异常的语句,介绍了默认的异常处理器、如何捕获异常、用户自定义异常以及finally终止行为
  • Python中警告与异常类型

    千次阅读 2018-09-28 23:16:32
    AttributeError:当一个属性引用或赋值失败时,会...FloatingPointError:这个错误由导致错误的浮点操作产生,前提是已经打开了浮点异常控制(fpectl),启用fpectl时,要求编译解释器提供 with-fpectl标志,但是标准...
  • 22.python-异常

    千次阅读 2019-11-28 01:01:35
    程序在运行时,如果Python 解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常程序开发时,很难将所有的...
  • Python异常处理机制

    千次阅读 2017-02-28 21:43:21
    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序异常处理 断言(Assertions) python标准异常 异常名称 描述 BaseException 所有异常...
  • Python语言常见异常错误类型

    千次阅读 2017-09-27 09:30:11
    在运行或编写一个程序时常会遇到错误异常,这时python会给你一个错误提示类名,告诉出现了什么样的问题(Python是面向对象语言,所以程序抛出的异常也是类)。能很好的理解这些错误提示类名所代表的意思,可以帮助你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,773
精华内容 43,109
关键字:

python程序异常类型

python 订阅