当前位置 : 主页 > 编程语言 > python >

一文了解Python3的错误和异常

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 1.错误和异常 2.异常处理 try/except try/exceptelse try-finally 3.抛出异常 4.assert(断言) 1.错误和异常 Python 的语法错误或者称之为解析错,是初学者经常碰到的 语法分析器会指出错的一
目录
  • 1.错误和异常
  • 2.异常处理
    • try/except
    • try/except…else
    • try-finally
  • 3.抛出异常
    • 4.assert(断言)

      1.错误和异常

      Python 的语法错误或者称之为解析错,是初学者经常碰到的

      语法分析器会指出错的一行,并且在最先找到的错误的位置标记一个小小的箭头。

      即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

      大多数的异常都不会被程序处理,都以错误信息的形式展现

      2.异常处理

      try/except

      异常捕捉可以使用 try/except 语句。

      以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用 Control-C 或者操作系统提供的方法)。用户中断的信息会引发一个KeyboardInterrupt 异常。

      while True:
          try:
              x = int(input("请输入一个数字:"))
              break
          except ValueError:
              print("您输出的不是数字!")
              # 请输入一个数字:ee
              # 您输出的不是数字!
              # 请输入一个数字:12 
      

      一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行

      try/except…else

      try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。

      else 子句将在 try 子句没有发生任何异常的时候执行。

      try-finally

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

      以下实例中 finally 语句无论异常是否发生都会执行:

      while True:
          try:
              x = int(input("请输入一个数字:"))
              break
          except ValueError:
              print("您输出的不是数字!")
              # 请输入一个数字:ee
              # 您输出的不是数字!
              # 请输入一个数字:12
          finally:
              print("我无论如何都会被执行!")
              # 请输入一个数字:12
              # 我无论如何都会被执行!
      

      3.抛出异常

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

      raise语法格式如下:

      raise [Exception [, args [, traceback]]]

      以下实例如果 x 大于 5 就触发异常:

      x = 10
      if x > 5:
          raise Exception('{}大于5了!'.format(x))
          # Exception: 10大于5了!
      

      4.assert(断言)

      Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

      断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。

      语法格式如下:

      assert expression

      等价于:

      if not expression:
          raise AssertionError
      

      assert 后面也可以紧跟参数:

      assert expression [, arguments]

      等价于:

      if not expression:
          raise AssertionError(arguments)
      

      以下实例判断当前系统是否为 Linux,如果不满足条件则直接触发异常,不必执行接下来的代码:

      import sys
      
      assert ('linux' in sys.platform), "该代码只能在Linux上执行"
      

      到此这篇关于一文了解Python3的错误和异常的文章就介绍到这了,更多相关Python错误 异常内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

      网友评论