美文网首页
python异常处理

python异常处理

作者: lily_5945 | 来源:发表于2021-02-03 18:12 被阅读0次

    异常类型的文章链接:https://www.cnblogs.com/nmb-musen/p/10856023.html

    异常捕获的语法

    1,try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理
    2,一个try语句可以对应多个expect语句,但只能对应一个finally子句,或是一个try-expect-finally复合语句
    3,可以使用try-expect语句监测和处理异常,也可以添加一个可选的else子句处理没有监测到异常时的执行代码
    4,finally 是不管有无错误,都会执行的代码。一般用来做清除工作

    常见的错误类型

    1,ValueError:传入无效的参数
    2,ZeroDivisionError :除数为0(任何一个数值被零除都会引发此错误)
    3,ModuleNotFoundError :找不到模块
    4,TypeError : 对类型无效的操作
    5,AssertionError : 断言失败
    6,NameError :变量未声明或初始化
    7,SyntaxError:python解释器语法错误(代码中有一个不正确的结构,改正之前程序无法运行)
    8,IndexError:请求的索引超出范围
    9,KeyError:请求一个不存在的字典关键字
    10,FileNotFoundError:输入/输出错误(打开文件路径错误会引发此错误)
    11,AttributeError:尝试访问未知的对象属性

    下面一个是一个简单的异常处理的例子

     num = input("请输入一个数字:") 
     res = 100 / int(num)
     try:
         res = 100 / int(num)
     except: # try里面的语句报错了,执行except
         # 你抓到了异常,你自己额外添加的处理
         print("输入有误,请输入非0的数字!")
         # 你处理完了之后,把错误又抛出给python解释器
         raise
     else: # try里面的语句没报错,执行else
         print(res)
     finally:
         # 不管try里面有没有报错。最后一定会执行的代码。
         print("我是一定要执行的收尾代码!")
    

    如果知道会出现哪些错误,可以针对不同的错误做不同的处理

     try:
         res = 100 / int(num)
     except ZeroDivisionError as e: # try里面的语句报错了
         # 你抓到了异常,你自己额外添加的处理
         print("输入有误!请输入非0的数字!")
         print(e)
         # 你处理完了之后,把错误又抛出给python解释器
         raise
     except ValueError as e:
         # 抓到异常,额外添加的处理。这里没有 raise 表示不显示异常
         print("输入有误!请输入数字类型!")
         print(e)      
     except Exception as e:
         print("其它未知错误")
         print(e)
    

    相关文章

      网友评论

          本文标题:python异常处理

          本文链接:https://www.haomeiwen.com/subject/psghtltx.html