TypeError 异常是由组合错误类型的对象或使用错误类型的对象调用函数引起的。示例 import sys try : ny = 'Statue of Liberty' my_list = [3, 4, 5, 8, 9] print my_list + ny except TypeError as e: print e print sys.exc_type 输出 can only concatenate list (not ""str") to list
IndentationError 异常在解析器发现不遵循缩进规则的源代码时发生。我们在导入模块时可以捕获它,因为模块会在第一次导入时编译。你不能在包含 try/except 块的同一模块中捕获它,因为出现此异常时,Python 将无法完成模块的编译,并且模块中的任何代码都不会运行。我们将给定代码改写如下以处理异常示例 try: def f(): z=['foo', 'bar'] for i in z: if i == 'foo': except IndentationError as e: print e 输出 "C:/Users/TutorialsPoint1/~.py", line 5 if i ... 阅读更多
当你的代码引用当前作用域中不存在的名称时,会引发 NameError 异常。例如,未限定的变量名。给定代码改写如下,以捕获异常并查找其类型。示例 import sys try: def foo(): print magnolia foo() except NameError as e: print e print sys.exc_type 输出 C:/Users/TutorialsPoint1/~.py global name 'magnolia' is not defined
当序列引用超出范围时,会引发 IndexError 异常。给定代码改写如下,以捕获异常并查找其类型示例 import sys try: my_list = [3,7, 9, 4, 6] print my_list[6] except IndexError as e: print e print sys.exc_type 输出 C:/Users/TutorialsPoint1~.py list index out of range
当算术运算超过变量类型的限制时,会引发 OverflowError 异常。长整数会随着值的增长而分配更多空间,因此最终会引发 MemoryError 异常。但是,浮点异常处理并非标准化。普通整数会根据需要转换为长整数值。示例 给定代码改写如下以捕获异常:i=1 try: f = 3.0**i for i in range(100): print i, f f = f ** 2 except OverflowError as err: print 'Overflowed after ', f, err 输出 我们得到如下 OverflowError 异常:C:/Users/TutorialsPoint1/~scratch_1.py Floating point values: 0 3.0 1 9.0 2 81.0 3 6561.0 4 43046721.0 ... 阅读更多
ArithmeticError 异常是所有因数值计算而发生的错误的基类。它是那些内置异常的基类,例如:OverflowError、ZeroDivisionError、FloatingPointError 我们可以在给定代码中捕获异常,如下所示示例 import sys try: 7/0 except ArithmeticError as e: print e print sys.exc_type print 'This is an example of catching ArithmeticError' 输出 integer division or modulo by zero This is an example of catching ArithmeticError