加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 云计算 > 正文

python常见报错信息!错误和异常!附带处理技巧

发布时间:2022-07-18 12:36:21 所属栏目:云计算 来源:互联网
导读:作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。 python常见报错信息!错误和异常!附带处理方法
    作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息。
 
    Python 有两种错误很容易辨认:语法错误和异常。
 
    Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
 
    python常见报错信息!错误和异常!附带处理方法
    语法错误
 
    Python 的语法错误或者称之为解析错,是初学者经常碰到的,如下实例
 
    >>> while True print('Hello world')
      File "<stdin>", line 1, in ?
        while True print('Hello world')
  
    大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:
 
    实例:
 
    >>> 10 * (1/0)             # 0 不能作为除数,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    ZeroDivisionError: division by zero
    >>> 4 + spam*3             # spam 未定义,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    NameError: name 'spam' is not defined
    >>> '2' + 2               # int 不能与 str 相加,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: can only concatenate str (not "int") to str
    异常以不同的类型出现,这些类型都作为信息的一部分打印出来: 例子中的类型有 ZeroDivisionError,NameError 和 TypeError。
 
    错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。
 
    异常处理
 
    try/except
    异常捕捉可以使用 try/except 语句
 
    python常见报错信息!错误和异常!附带处理方法
    以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用 Control-C 或者操作系统提供的方法)。用户中断的信息会引发一个 KeyboardInterrupt 异常。
 
    while True:
        try:
            x = int(input("请输入一个数字: "))
            break
        except ValueError:
            print("您输入的不是数字,请再次尝试输入!")
    try 语句按照如下方式工作;
  
    处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
 
    一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:
 
    except (RuntimeError, TypeError, NameError):
        pass
    最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。
 
    import sys
 
    try:
        f = open('myfile.txt')
        s = f.readline()
        i = int(s.strip())
    except OSError as err:
        print("OS error: {0}".format(err))
    except ValueError:
        print("Could not convert data to an integer.")
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise
    try/except...else
 
    try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。
 
    else 子句将在 try 子句没有发生任何异常的时候执行。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读