Python中的异常处理和try,except的用法

  在各种编程语言进行工作和学习的过程中,都会有一些错误异常,这些错误则以不同的方式去展现出来,但是也有一些编程语言的错误信息无法直接看到,比如html和css,只能通过页面显示的最终结果来判断是否有错误。Python的错误异常在大部分IDE编辑器中则可以直接显示出来,便于开发人员的调试及修改工作,对初学者也比较友好。
  Python中包含错误和异常两种情况①,错误主要是常见的语法错误SyntaxError,如下图所示,并且在错误提示中会有倒三角箭头的修改指示位置;python中的另外一种错误提醒叫做异常,指的是在语法和表达式上并没有错误,运行时会发生错误的情况。在python中,语法错误是直接显示在相关终端窗口,而异常可以进行错误提示,也可以进行捕捉处理。

python异常处理南雪python

  因为在程序执行时,异常报错提示可能会影响到输出结果的显示,此时就可以使用try:...except:...进行异常处理②,将错误直接输出打印,而不是以报错的形式显示。在python中有很多不同的异常提示方法,官方成为异常类,所有异常类都基于BaseException③。大家也可以在官方文档中查看详细的继承关系图,在一般处理异常的情况下,大多使用Exception与其子类异常,如下图就是使用Exception输出程序执行异常的代码示例。

python异常处理南雪python

  使用Exception下的NameError代码示例:

python异常处理南雪python

  还有一些异常错误信息是模块中自带的错误,比如urllib.error中的HTTPError和URLError,以及json中的JSONDecodeError等。查看底层实现源码可以看出这些异常也是基于Exception,相当于这些模块主动抛出一个自定义的异常信息,所以也是可以通过Exception进行输出。如下图:

python异常处理南雪python

  既然在模块可以从代码中实现主动抛出异常错误信息,那我们也可以根据自己的需求去抛出相应的异常提示信息。这时候就使用到了raise④,代码示例如下,我们可以在raise中添加一个基类,紧挨基类去添加一个关于异常信息的提示,提示内容可以为汉语,但是尽量不要使用。

python异常处理南雪python

  try:...except:...语句还可以结合finally进行使用,无论输出try语句中的正确代码,还是输出except中的错误信息,finally都会进行输出打印输出,代码示例图下图所示。

python异常处理南雪python

  try:...except:..除了可以使用raise抛出异常,和finally进行结合使用,还可以结合else进行使用,else用来返回输出正确信息,但正确内容大多写在try语句中,所以else并不常用;try:...except:..语句也可以根据实际情况添加多个except进行处理不同的异常信息,关于更多的用法,大家还可以通过“百度一下”学习更多内容。
  以上内容主要帮助大家使用try:...except:...处理异常的方法,如果不清楚使用哪一种异常方法,可以使用通用异常Exception,也可以在except中打印自己定义的错误信息。在出现异常的情况下程序有可能会中断执行,而使用异常处理,则可以跳过这些异常继续执行正确的代码;异常处理也可以添加自定义的错误信息,在工作中方便与同事之间的配合,这些都是使用异常处理的好处。
  以下为参考文档,依顺序对应文中数字,建议使用chrome浏览器进行翻译查看,利于理解:
  ①https://docs.python.org/3.6/tutorial/errors.html?highlight=exceptions
  ②https://docs.python.org/3.6/reference/compound_stmts.html#except
  ③https://docs.python.org/3.6/library/exceptions.html
  ④https://docs.python.org/3.6/reference/simple_stmts.html#raise

  • 58
    点赞
  • 314
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值