python异常介绍 try 主动抛出异常 断言

python

 

异常

python;gutter:true;">\'\'\'

异常是程序运行过程中发生的非正常情况, 是一个错误发生时的信号

异常如果没有被正确处理的话, 将导致程序被终止, 这对于用户体验是非常差的, 可能导致严重的后果

处理异常的目的就是提高程序的健壮性

\'\'\'

常见异常

 

TypeError: \'int\'

object is not subscriptable

对象不能被切片

  

TypeError: \'list\'

object is not callable

对象不能被调用

  

IndexError: list index out of range

索引超出范围

  

TypeError: \'builtin_function_or_method\'

object is not iterable

对象不能被迭代

  

KeyError: \'xxx\'

不存在这个key

  

FileNotFoundError: [Errno 2]

No such file or directory: \'xxxxx\'

文件找不到

异常处理

# 语法:

try:

​ 可能会出现异常的代码

  放到try里面

except 具体异常类型 as e:

​ 如果真的发生异常就执行except

 

 

try:

正常的操作

......................

except:

发生异常,执行这块代码

......................

else:

如果没有异常执行这块代码

 

 

try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

try:

<语句>

finally:

<语句> #退出try时总会执行

raise

  

try:

fh = open("testfile", "w")

fh.write("这是一个测试文件,用于测试异常!!")

finally:

print "Error: 没有找到文件或读取文件失败"

  

主动抛出异常

 

我们可以使用raise语句自己触发异常

raise语法格式如下:

raise [Exception [, args [, traceback]]]

  

def functionName( level ):

if level < 1:

raise Exception("Invalid level!", level)

# 触发异常后,后面的代码就不会再执行

 

 

断言assert

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,可以先判断当前系统是否符合条件。

语法格式如下:

assert expression 

等价于:

if not expression:

raise AssertionError

  

assert 后面也可以紧跟参数:

assert expression [, arguments] 

等价于:

if not expression:

raise AssertionError(arguments)

 

以上是 python异常介绍 try 主动抛出异常 断言 的全部内容, 来源链接: utcz.com/z/389119.html

回到顶部