Python异常处理和异常类型
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:尝试访问一个未申明的变量
>>> vNameError: name 'v' is not defined
2. ZeroDivisionError:除数为0
>>> v = 1/0ZeroDivisionError: int division or modulo by zero
3. SyntaxError:语法错误
int intSyntaxError: 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.aTraceback (most recent call last): File "<pyshell#51>", line 1, in <module> w.aAttributeError: '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 != 1Traceback (most recent call last): File "<pyshell#70>", line 1, in <module> assert 1 != 1AssertionError
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的子类。
错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束。
赞 (0)