三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」Python的错误和异常在编写Python程序时,时常会遇到代码执行错误和异常,下文就将对Python中的错误和异常作详细说明。1.错误和异常的

大家好,欢迎来到IT知识分享网。

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

Python的错误和异常

在编写Python程序时,时常会遇到代码执行错误和异常,下文就将对Python中的错误和异常作详细说明。

1.错误和异常的概念

  • 错误

Python中的错误主要分为两种,即语法错误和逻辑错误。

    • 语法错误: 语法错误是指代码不符合解释器或编译器的语法;

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

语法错误

在程序执行过程中,python解释器会检查你的代码是否存在语法错误,如果程序出错,Python解释器会指出出错的那行,并且在最先出错的地方标记了一个小小的箭头

  • 逻辑错误:逻辑错误是指不完整或不合法的输入或计算出现问题,比如,传参时参数的不合理,除0操作。
三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

逻辑错误

注:零是不能作为除数的,程序写法可能没有问题,但是逻辑存在问题,这就是一种逻辑错误

  • 异常

异常通常指执行Python程序的过程中出现问题导致程序无法执行,即便python的程序的语法是正确的,在运行它的时候,也有可能发生错误,程序运行期检测到的错误被称为异常,主要分为下面两种情况:

    • 程序遇到逻辑或者算法问题;
    • 程序运行的过程中计算机错误,如内存溢出或者IO错误
三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

异常

异常都有不同的类型出现,这些错误类型都作为信息的一部分打印出来,例子中的类型有ZeroDivisionError,TypeError,IndexError。每一种错误类型,都有相应的异常类

  • 错误和异常的区别
    • 错误是指代码运行前语法或者逻辑错误,其中,语法的错误在代码执行前必须修改,而逻辑错误在运行前无法被识别;
    • 异常是Python程序执行过程中出现问题,一般是指不完整不合法的输入或者计算出现错误, 异常出现需要知道异常的生产和如何来处理异常
    • assert(断言)用于判断一个表达式,在表达式条件为false的时候触发异常;
三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

Python错误和异常

2.如何处理异常

  • try/except语句

异常的处理包括异常的捕获和异常的处理,一般可以使用try/except语句捕获处理异常:

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

try中是执行的代码,except中是捕获异常时执行的代码, 可以有多个except语句

# 请看下面的例子

while True:
    try:
        receiver = int(input("请输入一个数值:"))
        break
    except ValueError:
        print('你输入的不是数字,请再次输入')

IT知识分享网

上面的代码执行流程如下:

  1. 称执行try下的语句块;
  2. 如果输入的是数字,没有发生异常,则except语句不会执行,try中的语句执行后结束(break)
  3. 如果输入的是非数字,那么将发生异常,那么在try中发生异常下面的语句不会被执行。如果触发的异常是except后面指定的异常,except下面的语句将会被执行;
  4. 如果一个异常没有匹配任何except(except语句可以有多个)指定的异常,那么这个异常会传递给上层中的try语句;
视频加载中…

  • 2.try/except…else语句

在Python中,try/except语句有一个可选的else语句,如果使用这个语句,那么必须放在所有的except子名之后。else语句交在try子句执行没有发生作何的异常后执行。

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

try/except…else

  • try/except..else…finally

try-finally 语句无论是否发生异常都将执行最后的代码。

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

try/except…else…finally

IT知识分享网def divide(x, y):
     try:
         result = x / y
     except ZeroDivisionError:
         print("division by zero!")
     else:
         print("result is", result)
     finally:
         print('来来来来来来来来来来')

divide(2,1)
divide(2,0)
divide('2','3')
三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

try/except…else…finally

  • 抛出异常(raise)

Python 使用 raise 语句抛出一个指定的异常:

三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

raise Excpetion

x = int(input('请输入一个数值:'))
if x > 25:
    raise Exception(f'x 不能大于 25, x 的值为: {x}')
三十六、Python不得不知道的错误(Error)和异常(Exception)「终于解决」

raise抛出异常

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13453.html

(0)
上一篇 2023-03-08 13:59
下一篇 2023-03-08 14:59

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信