python异常处理

    xiaoxiao2021-12-14  20

    try...except...else:

    try/except语句用来检测try语句块中的异常,然后让except语句捕获异常信息并处理。如果不希望异常发生导致程序结束,就需要try对异常进行捕获。

    语法:不带异常类型

    try: #正常执行 <代码...> except 异常类型 : #发生异常时执行 <代码...> else: #没有异常时执行 <代码...>

    语法2:    带有多种异常类型

    try: #正常执行 <代码...> except [(异常类型1[,异常类型2...])]: #捕获到异常类型1或2等时执行 <代码...> except [(异常类型3)] as [参数]: #捕获到异常类型3时执行 参数:接收异常信息的参数 <代码...> else: #没有异常发生时执行 <代码...>

    try-finally:

    无论是否发生异常都将执行最后的代码(finally)。

    语法:

    try: <代码...> finally: <代码...> #退出try后总会执行

    触发(抛出)异常:

    语法:

    raise [Exception ( ,args [ ,traceback])]  

    参数都是可选的。Exception是异常类型  args是变量

    def ThrowExc(level): if level<3: raise Exception("我是异常~",level) ThrowExc(2) #触发异常

    n=input('请输入一个正数') if n<0: raise Exception("你输入的内容有误...")

    自定义异常类型:

    class MyException(Exception): ...... try: raise MyException("我是异常~") except MyException,e: #e接收异常信息 print e #打印异常信息 class MyException(Exception): pass try: raise MyException("我是异常~") except MyException as e: #e是异常信息 print e #打印异常信息

    exceptions异常模块包含有很多异常类型,可以通过导入异常模块,再根据dir(exceptions)查看

    异常的小栗子:

    # -*- coding: cp936 -*- fn=raw_input('请输入您要打开的文件的文件名:')+'.txt' #python3以上的版本: #fn=input('请输入您要打开的文件的文件名') try: fo=open(fn,'r') except IOError,e: print('你查找的的文件不存在...') finally: try: fo.close() except NameError e: pass print "操作已完成..." 如果指定要打开的文件不存在,那么fo=open(fn,'r')会出异常,通过try...except捕获异常。如果文件存在的话,我们需要fo.close()来关闭文件释放占用的资源,所以我们需要在finally中添加这句,而在文件不存在的情况下,fo.close()也会出现异常,因此就需要在finally里面再嵌套一个try...except捕获异常

    IOError:输入输出异常

    ImportError:无法引入模块或包,一般是路径问题

    IndexError:下标超出边界

    IndentationError:代码没有正确的对齐

    KeyError:试图访问字典中不存在的键

    NameError:使用没有初始化的变量

    SyntaxError:代码逻辑语法错误

    TypeError:传入的对象类型与要求不符

    ValueError:传入一个不被期望的值

    AttributeError:试图访问一个对象没有的属性

    UnboundLocalError:试图访问一个还未设置的全局变量

    AssertionError:assert语句失败

    转载请注明原文地址: https://ju.6miu.com/read-963600.html

    最新回复(0)