目录
2.5.2多个异常 异常类型捕获演练 —— 要求用户输入整数
一.异常的概念
程序在运行时,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常。
程序停止执行并且提示错误信息,这个动作,我们通常称为:抛出(raise)异常
异常和错误的区别
- 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)
- 异常 就是程序运行时发生错误的信号,在python中,错误触发的异常如下
简单来说,异常就是程序已经运行时发生的错误,而语法错误必须在程序执行前改正否则无法运行程序。
1.1python中,错误触发的异常如下
在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误
- AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
- IOError 输入/输出异常;基本上是无法打开文件
- ImportError 无法引入模块或包;基本上是路径问题或名称错误
- IndentationError 语法错误(的子类) ;代码没有正确对齐
- IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
- KeyError 试图访问字典里不存在的键
- KeyboardInterrupt Ctrl+C被按下
- NameError 使用一个还未被赋予对象的变量
- SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
- TypeError 传入对象类型与要求的不符合
- UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量导致你以为正在访问它
- ValueError 传入一个调用者不期望的值,即使值的类型是正确的常用异常
- 等等很多
二.异常处理
2.1什么是异常?
异常发生之后 异常之后的代码就不执行了
2.2 什么是异常处理
python解释器检测到错误,触发异常(也允许程序员自己触发异常)
程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)如果捕捉成功则进入另外一个处理分支