Python3.2 官方文档翻译--错误与异常
Posted mqxnongmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3.2 官方文档翻译--错误与异常相关的知识,希望对你有一定的参考价值。
第六章?错误和异常
直到如今错误信息还没有被涉及到。但你假设已经尝试了实例你可能已经看到一些相关信息。
在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:?Can’t?convert?’int’?object?to?str?implicitly
错误信息的最后一行描写叙述产生错误的原因,异常产生有不同方式而且错误类型会作为信息的一部分打印出来:?在实例中错误信息是?ZeroDivisionError,NameError和TypeError。
?作为错误类型打印出来的字符串是出如今内置异常的名称。
这对内置异常是正常的结果。但对于用户自己定义异常(虽然这是一个实用的规范)就不可而知了。标准异常的名称都是内置的标识符。(这不是保留keyword)。
剩下的行信息基于异常类型和产生原因提供更加具体信息。
错误信息的前面部分会显示异常发生的上下文。而且以栈的形式打印出来。总的来说,它包括一个包括源码的堆栈的列表;可是它不会显示从标准行读取的信息。
Bltin-exception显示内置全部的异常和全部的信息。