python学习笔记5_异常

python学习笔记5_异常

1、什么事异常

Python使用异常对象(exception object) 来表示异常情况。遇到错误会发生异常。

如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(traceback,一种错误信息)终止执行。

python学习笔记5_异常每个异常都是一些类的(本例中是ZeroDivisionError)实例,这些实例可以被引发,并且可以用很多种方式进行捕捉,使程序捕捉异常并处理异常,从而避免整个程序崩溃。

2.、按自己的方式出错

所有的异常类,都是Exception的子类。

2.1、raise

要引发异常,要么是Exception的子类。或者实例参数调用raise。

python学习笔记5_异常返回,没有任何有关错误信息的普通错误。python学习笔记5_异常返回,一些有关“hyperdrive overload”的错误信息。

  • Exception   所有异常的基类
  • AttributeError   特性引用或赋值失败时引发
  • IOError   试图打开不存在文件(包括其他情况)时引发
  • IndexError  在使用序列中不存在的索引时引发
  • KeyError    在使用映射中不存在的键时引发
  • NameError 在找不到名字(变量)时引发
  • SyntaxError 在代码为错误形式时引发
  • TypeError 在内建操作或者函数应用于错误类型的对象时引发
  • ValueError 在内建操作或者函数应用于正确类型对象,但是该对象使用不合适的值时引发。
  • ZeroDivisionError 在除法或者模除操作的第二个参数为0时引发

自定义异常类

Class SomeCustomException(Exception):pass

3、捕获异常

这个功能可以使用 try/except来实现。

python学习笔记5_异常  如果捕获了异常,但又想重新引发它(也就是说传递异常),那就可以调用不带参数的raise。python学习笔记5_异常

4、多个except子句

因为继承eccept的字异常类有很多,如果只捕获一种错误(上例 捕捉ZeroDivisionError,如果除数为0正常被过捕获,当除数是一个字符串的时候那就回引发TypeError的错误,就被漏掉。),引其他错误将被漏掉。

python学习笔记5_异常python学习笔记5_异常python学习笔记5_异常python学习笔记5_异常

5、用一个块捕获多个异常

用一块捕获多个类型的异常,可以把异常类型作为元祖列出。

python学习笔记5_异常python学习笔记5_异常python学习笔记5_异常python学习笔记5_异常

6、捕获对象

希望在except子句中访问异常对象本身,可以使用两个参数。

python学习笔记5_异常python学习笔记5_异常

7、全捕捉

一段代码捕捉所有的异常。可以使用except子句中忽略所有异常类。

python学习笔记5_异常python学习笔记5_异常隐藏所有的错误是很危险的事情,因为会异常所有程序员想不到的错误。

8、万事大吉----else子句

try:

print('正常代码块 ')

except:

print('当发生异常的时候执行。')

else:

print('这是一个没有任何异常的程序。')

9、最后。。。。。。

最后,是Finally子句。它可以用来在可能的异常后进行清理。

python学习笔记5_异常python学习笔记5_异常注意在2.5以前的版本中,finally是独立的,不能组合使用,2.5以后的版本可以随意使用了。

10、异常和函数

异常和函数能很自然的一起工作。如果异常在函数内部引发而不被处理,它就会传播至(浮到)调用的地方。,如果在那里也没处理异常,它就会继续传播,一直到达主程序(全局作用域)

如果那里没有异常处理程序,程序会带这堆栈跟踪中止。

上一篇:python面试题解析(网络编程与并发)


下一篇:vue 自学笔记(5) 列表渲染