一、啥是异常

异常是指程序运行是时报错,如果没有进行异常处理,会导致程序终止。

二、异常的常见种类

1、常见异常

这里只列举几个最常见的异常,

  • ImportError,无法引入模块或包,大部分是路径问题或名称错误。
  • IOError,输入输出异常,大部分是无法打开文件。
  • TypeError,传入对象类型与要求的不符合。
  • NameError,使用一个还未被赋予对象的变量。
  • ValueError,传入一个调用者不期望的值,即使值的类型是正确的。
  • KeyError,尝试访问字典里不存在的键。
  • SystemError,一般的解释器系统错误。
  • KeyboardInterrupt,用户中断执行。
  • ZeroDivisionError,除(或取模)零。

python出现out Python出现错误keyerror_python异常

 

2、语法错误

错误按正常是不应该包含在异常里面的,但是其中的语法错误也是非常常见的,我们这里也简单提一下。语法错误(SyntaxError: invalid syntax),在编辑器里面编译的时候就会报错,执行后会提示在第几行有错误,非常清晰。

python出现out Python出现错误keyerror_异常处理_02

 

三、异常处理

考虑到程序的健壮与容错性,我们需要对潜在的异常进行处理,防止因异常而导致的程序崩溃。最常用的的异常处理方式是:try……except,语法看下图,

python出现out Python出现错误keyerror_python_03

 

其中执行流程为:首先执行try语句;若try语句无异常发生,则跳过except子句,try语句执行后结束;若try语句有异常,则try语句余下的部分将被忽略,进入except部分,一层层匹配异常类型后执行。

python出现out Python出现错误keyerror_python_04

 

其中 try 语句可以包含多个 except 语句,分别来处理不同的特定的异常,但最多只有一个except 分支会被执行。

四、抛出异常

Python3 中使用 raise 语句抛出一个指定的异常。raise只有一个参数,用来指定要被抛出的异常,她必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。

python出现out Python出现错误keyerror_python异常_05

 

五、自定义异常

如果项目有需求,python3也支持用户自定义异常和对应的清理行为。自定义的异常类继承Exception 基类即可,对应的清理行为也可以自定义,有兴趣的可以自己尝试下。

python出现out Python出现错误keyerror_python异常_06