当前位置:   article > 正文

python异常处理_python raise inputerror

python raise inputerror

一:错误简述

    在程序的运行过程中,总会遇到各种各样的错误。

    程序中的错误:代码错误,即bug

    用户输入错误:用户输入不正确的格式,如输入为空等

    难以预测的错误:写入文件时磁盘满了写不进;从网络抓取数据,突然断网了

二:错误提示信息


三:错误处理

    程序中的错误和用户输入错误要求写代码的程序员们自己去修复;对那些程序运行过程中难以预测的错误才应该使用python的异常处理机制。

    出现错误时,错误会在程序中一级级往上报,直到碰到能处理该错误的异常处理机制,否则一直报到最上层,直至终止程序。

  1. # python异常处理机制
  2. try:
  3. #try代码块
  4. x = 4
  5. l = [1,2,3,4]
  6. y= l[x]
  7. print(x)
  8. # except (NameError,SyntaxError,IndexError): # 可以采用这种格式同时捕获多个异常类型
  9. # print('NameError or SyntaxError or IndexError')
  10. except NameError: # 捕获NameError错误;except的个数不固定,随需求而变
  11. print('NameError')
  12. except IndexError as error_value: # 使用 as 可以得到异常的值,接收值的变量名是自定义的
  13. print('IndexError:',error_value)
  14. except Exception as error_value: # 可以捕获任何异常
  15. print('万能异常',error_value)
  16. else: # 不能单独与try使用,即在else前必须有异常处理 except (可选)
  17. print('只在try代码块没有抛出异常的情况下执行')
  18. finally: # (可选)
  19. print('无论try代码块是否有异常,最后都会执行这里的代码')
  1. # 断言 用于代码调试的一种方法
  2. # x = 2
  3. # assert x<3,'x shoud lower 3' # x小于3时才能执行后面的代码,否则抛出异常,并打印异常提示信息
  4. # print(x)
  1. # raise 主动抛出异常
  2. while True:
  3. x=3
  4. y = input('>>:').strip()
  5. if y.isdigit():
  6. y = int(y)
  7. else:
  8. # raise ValueError('invalid value')
  9. raise #自己处理不了,把异常抛出去,让顶层调用者去处理

四:自定义错误类型

 python中的错误类型也是一个类,其继承关系如下:



  1. # 自定义异常类型,继承自Exception
  2. class InputError(Exception):
  3. def __init__(self,error_info):
  4. super().__init__(self)
  5. self.error_info = error_info
  6. def __str__(self):
  7. return self.error_info
  8. if __name__ == '__main__':
  9. try:
  10. raise InputError('Invalid input')
  11. except InputError as error_value:
  12. print(error_value) #Invalid input

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/205194?site
推荐阅读
相关标签
  

闽ICP备14008679号