话本小说网 > 现代小说 > Python入门级教程
本书标签: 现代 

异常及处理

Python入门级教程

异常

已经在以前的代码中看到了异常。由于错误的代码或输入,出错时会发生。当发生异常时,程序立即停止。

下面的代码通过尝试将7除以0来生成ZeroDivisionError 异常。

num1 = 7

num2 = 0

print(num1/num2)

结果是:

ZeroDivisionError: division by zero

英文意思:

除以0错误

division 除

by 通过

zero 零

Error错误

什么是异常?

A函数

B由于错误的代码或输入而发生的事件。

C变量

异常

由于不同的原因,输出了不同的例外。

常见例外: ImportError:导入失败; IndexError:一个列表用一个超出范围的数字索引;

NameError:使用未知变量;

SyTraceError:无法正确解析代码;

TypeError:在不适当类型的值上调用函数;

ValueError:函数被调用在正确类型的值上,但具有不适当的值。

Python有几个其他内置异常,例如ZooDistVistIOrror和OsCurror。第三方库也经常定义它们自己的异常。

这个代码引发了什么异常?

print(“7”+ 4)

ATypeError

BValueError

CZeroDivisionError

异常处理

要处理异常,并在发生异常时调用代码,则可以使用“try/except ”语句。 尝试块包含可能引发异常的代码。如果发生异常,则尝试执行块中的代码,并运行除块中的代码。如果没有发生错误,除块中的代码不会运行。

例如:

try:

num1 = 7

num2 = 0

print (num1 / num2)

print("计算完毕")

except ZeroDivisionError:

print("发生了一个错误")

print("一个除以0的错误")

结果:

>>>

发生了一个错误

一个除以0的错误

>>>

在上面的代码中,定义了要处理的异常类型

这个代码的输出结果是什么?

try:

meaning = 42

print(meaning / 0)

print("the meaning of life")

except (ValueError, TypeError):

print("ValueError or TypeError occurred")

except ZeroDivisionError:

print("Divided by zero")

ADivided by zero ValueError or TypeError occurred

BValueError or TypeError occurred

CDivided by zero

异常处理

尝试语句可以有多个不同的块,以处理不同的异常。

也可以使用括号将多个异常放入一个单独的块中,使除块处理所有的异常。

try:

variable = 10

print(variable + "hello")

print(variable / 2)

except ZeroDivisionError:

print("Divided by zero")

except (ValueError, TypeError):

print("Error occurred")

结果:

>>>

Error occurred

>>>

在空白处处理所有可能的异常情况。

num1 = input(":")

num2 = input(":")

print(float(num1)/float(num2))

print("Invalid input")

异常处理

指定的例外语句将捕获所有错误。这些方法应谨慎使用,因为它们可以捕捉意外错误并隐藏编程错误。

例如:

try:

word = "spam"

print(word / 0)

except:

print("发生了一个错误")

结果:

>>>

发生了一个错误

>>>

异常处理在处理用户输入时特别有用。

这段代码的输出结果是:

try:

print(1)

except:

print(2)

finally:

print(3)

A1

B1 2 3

C1 3

D3

上一章 标准库与pypi Python入门级教程最新章节 下一章 finally与异常抛出