python-异常处理1
1.异常和错误概念:
错误:没法通过其他的代码进行处理的问题
语法错误:比如,定义函数写成了 dfe xxx()这种错误,可以直接通过IDE或解释器给出的提示进行修改。
逻辑错误:语法层面没有问题,但是自己设计的逻辑出现问题。例如:if age < 18: print("已经成年")。这种错误,IDE或者解释器无法帮我们检测出。只有我们通过代码测试,进行排除。
异常:多指程序在运行的过程中,出现的未知错误。语法和逻辑都正确,可通过其他代码进行处理修复。
例如:
2.常见的系统异常:
除零异常:
示例代码:1 / 0
异常名称:ZeroDivisionError
名称异常:
示例代码:print(name)
异常名称:NameError
类型异常:
示例代码:"1" + 2
异常名称:TypeError
索引异常:
示例代码:I = [1, 2]
I[3]
异常名称:IndexError
键异常:
示例代码:dic = "name": "sz", "age": 18}
dic{add}
异常名称:KeyError
值异常:
示例代码:int("abc")
异常名称:ValueError
属性异常:
示例代码:name = "xxx"
print(name.xxx)
异常名称:AttributeError
迭代器异常:
示例代码:it = iter([1, 2])
print(next(it))
print(next(it))
print(next(it))
异常名称:StopIteration
系统异常类继承树:
BaseException所有内建的异常的基类:
SystemExit:由sys.exit()函数引发。当它不处理时候,python解释器退出。
KeyBoardInterrupt:当用户点击中断键(通常ctrl + c )引发。
GeneratorExit:当调用一种generator的close()方法时引发。
Exception:所有内置的,非系统退出异常是从该类派生的。应该从该类派生所有用户定义的异常