博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3.2 官方文档翻译--错误与异常
阅读量:4170 次
发布时间:2019-05-26

本文共 1251 字,大约阅读时间需要 4 分钟。

第六章 错误和异常

直到现在错误信息还没有被涉及到。但你如果已经尝试了实例你可能已经看到一些相关信息。在python中至少有两种不同的错误:syntax errors exceptions

6.1 语法错误(syntax errors

   语法错误,也就是编译错误,当你开始学习python时,这种错误可能是你最常见的抱怨。

>>> while True print(Hello world)

File "<stdin>", line 1, in ?

while True print(Hello world)

^

SyntaxError: invalid syntax

 

语法分析器会知道出错的语句,并在检查到错误的位置前面显示一个小“箭头”。错误是由于箭头编辑的字符引起的或者至少探测到的。在例子中,在函数print()上探测到错误,由于在它前面少了一个:.从文本输入情况下, 文件名称和行数将会被打印出来,因此在你可以知道从哪儿定位错误。

8.2 异常

如果语句和表达式在语法上是正确的,当尝试去运行它时可能会产生一个错误。在执行过程中被检测到的错误称为异常和程序不会无条件的崩溃。接下来你会学到在python程序中如何处理异常。但是,许多异常不能被程序处理,就会导致如下的错误信息:

>>> 10*(1/0)

Traceback (most recent call last):

File "<stdin>", line 1, in ?

ZeroDivisionError: int division or modulo by zero

>>> 4 + spam*3

Traceback (most recent call last):

File "<stdin>", line 1, in ?

NameError: name spam’ is not defined

>>> 2’ + 2

Traceback (most recent call last):

File "<stdin>", line 1, in ?

TypeError: Cant convert int’ object to str implicitly

错误信息的最后一行描述产生错误的原因,异常产生有不同方式并且错误类型会作为信息的一部分打印出来: 在实例中错误信息是 ZeroDivisionError,NameErrorTypeError。 作为错误类型打印出来的字符串是出现在内置异常的名称。这对内置异常是正常的结果,但对于用户自定义异常(尽管这是一个有用的规范)就不可而知了。标准异常的名称都是内置的标识符。(这不是保留关键字)。

剩下的行信息基于异常类型和产生原因提供更加详细信息。

错误信息的前面部分会显示异常发生的上下文,并且以栈的形式打印出来。总的来说,它包含一个包含源代码的堆栈的列表;但是它不会显示从标准行读取的信息。

Bltin-exception显示内置所有的异常和所有的信息。

转载地址:http://lskai.baihongyu.com/

你可能感兴趣的文章
嵌入式100题(019):指针与引用的相同和区别;如何相互转换?
查看>>
嵌入式100题(040):什么是三次握手
查看>>
嵌入式100题(037):Http1.1和Http1.0的区别
查看>>
嵌入式100题(038):HTTPS与HTTP的一些区别
查看>>
嵌入式100题(042):为什么服务端易受到SYN攻击?
查看>>
嵌入式100题(043):什么是四次挥手
查看>>
嵌入式100题(044):为什么客户端最后还要等待2MSL?
查看>>
嵌入式100题(045):为什么建立连接是三次握手,关闭连接确是四次挥手呢?...
查看>>
嵌入式100题(028):static的用法(定义和用途)
查看>>
嵌入式100题(027):char和int之间的转换
查看>>
嵌入式100题(029):const常量和#define的区别(编译阶段、安全性、内存占用等)...
查看>>
嵌入式100题(030):volatile作用和用法
查看>>
嵌入式100题(033):TCP、UDP的优缺点
查看>>
嵌入式100题(035):TCP为什么是可靠连接
查看>>
嵌入式100题(034):TCP UDP适用场景
查看>>
嵌入式100题(70):一个程序从开始运行到结束的完整过程(四个过程)
查看>>
嵌入式100题(71):什么是堆,栈,内存泄漏和内存溢出?
查看>>
嵌入式100题(73):死锁的原因、条件 创建一个死锁,以及如何预防
查看>>
嵌入式100题(60):系统调用的作用
查看>>
C语言基本概念归纳
查看>>