异常:在运行代码构成中遇到的任何错误,带有error字样的,都是异常
异常处理:对代码中所有出现的异常进行处理
python用异常对象(exception object)来表示异常情况,遇到错误后,会引发异常,如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。
异常捕捉可以使用 try/except 语句。

(初级的异常处理:抓 1.处理某个错误 2.处理某种类型的错误 3.有错就抓)
try 语句按照如下方式工作;
首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。
如果没有异常发生,忽略 except 子句,try 子句执行后结束。
如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。
如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。
一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
- import os
-
- #1
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- except FileExistsError: #出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
-
- #2
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- except OSError: #出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
-
- #备注:说明FileExistsError错误类型属于OSError
-
- #3
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- #有错就抓
- except Exception: #出动警力
- # except: # 出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
- import os
-
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- except (FileExistsError,OSError,NameError): #出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
(真正的异常处理:既要抓,还要有处罚措施)
try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。
else 子句将在 try 子句没有发生任何异常的时候执行。

- import os
-
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- #有错就抓
- except Exception as e: #报错误抓起来,存储到变量C里面去
- # except: # 出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
- print('犯的错误是:{0}'.format(e))
- #将错误记起来,新建文件
- # a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
- file=open('error.text','a+',encoding='utf-8')
- file.write(str(e))
- # close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
- file.close() #关闭文件
- else: #跟try下面的的代码是一起的,有错不运行else后面的代码
- print('测试缓缓')
另:
close()方法的使用:
File close() 方法 概述 close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。 当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。 使用 close() 方法关闭文件是一个好的习惯。 语法 close() 方法语法如下: fileObject.close(); 参数 无 返回值 该方法没有返回值。
try-finally 语句无论是否发生异常都将执行最后的代码。

- import os
-
- try: #可比喻为警察
- os.mkdir('huan_huan') #可比喻成嫌疑人
- #有错就抓
- except Exception as e: #报错误抓起来,存储到变量C里面去
- # except: # 出动警力
- print('抓捕归案,等待进一步处理') #抓捕归案
- print('犯的错误是:{0}'.format(e))
- #将错误记起来,新建文件
- # a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
- file=open('error.text','a+',encoding='utf-8')
- file.write(str(e))
- # close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
- file.close() #关闭文件
- finally: #不管有没有错,都要执行
- print('测试缓缓')