python学习第七天——错误和异常

 这是一张python错误和异常相关的知识点图

语法错误                                                           

初学者常见的语法错误,大小写写错,冒号忘了,缩进乱了,加大括号等等,语法错误称为解析错

异常处理                                                          

try:

  ####执行代码

except:

  ####异常时执行的代码

else:

  ####没有异常时执行的代码

finally:

  ####不管是否有异常均会执行的代码

注意:

执行try中语句发生异常后,try中余下语句将被忽略;如果异常类型和except中的异常匹配,则对应的except子句被执行;

如果except中的异常均不匹配,则将会把异常传递到上层的try中;

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

最后一个except子句可以忽略异常的名称,它将被当作通配符使用

import sys
 
try:
    f = open('myfile.txt')
    s = f.readline()
    i = int(s.strip())
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("xxxxxxx")
except:
    print("Unexpected error:", sys.exc_info()[0])
    raise

引发异常                                            

  raise [Exception [, args [, traceback]]],类似java的throw

注意:raise必须抛出Exception的子类(实例)

with语句                                            

了解下工作原理:

  with后返回的对象要求必须有这两个方法:__enter__() / __exit__(),例如文件对象file

  进入与此对象相关的运行时上下文,调用object.__enter__(self)方法

  退出与此对象相关的运行时上下文时调用object.__exit__(self, exc_type, exc_value, traceback)

简单的示例:

with open("myfile.txt") as f:
    for line in f:
        print(line, end="")

assert断言                                         

  用于判断一个表达式,在表达式条件为 false 的时候触发异常

  语法:assert expression [, arguments]等价于:

if not expression:
    raise AssertionError(arguments)

  例子:

>>>assert false'hahahahah'

输出:
Traceback (most recent call last):
  File "xxx/test1.py", line 40, in <module>
    assert False,'hahahah'
AssertionError: hahahah

 

原文地址:https://www.cnblogs.com/yb38156/p/12504933.html