龙空技术网

Python编程基础:错误和异常处理

青少年编程CodeTeen 51

前言:

而今看官们对“python致命错误怎么办”大约比较重视,看官们都想要学习一些“python致命错误怎么办”的相关内容。那么小编同时在网摘上搜集了一些对于“python致命错误怎么办””的相关知识,希望姐妹们能喜欢,朋友们快快来学习一下吧!

编写完python代码后运行时,因为各种原因,可能会出现错误或异常,导致程序运行终止。

错误一般指语法错误,运行中检测到其它错误一般称为异常。

语法错误

语法错误又称解析错误。解析器会复现出现句法错误的代码行,并用小“箭头”指向行里检测到的第一个错误。以下示例出现语法错误,是因为在while True后面没有加上冒号(:)。

>>> while True print('hi')  File "<stdin>", line 1    while True print('hi')               ^^^^^SyntaxError: invalid syntax
异常

即使语句或表达式使用了正确的语法,执行时仍可能触发错误。执行时检测到的错误称为异常

>>> 5/0Traceback (most recent call last):  File "<stdin>", line 1, in <module>ZeroDivisionError: division by zero>>> a * 4Traceback (most recent call last):  File "<stdin>", line 1, in <module>NameError: name 'a' is not defined>>> '1' + 1Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: can only concatenate str (not "int") to str

错误信息的最后一行说明程序遇到了什么类型的错误。异常有不同的类型,而类型名称会作为错误信息的一部分中打印出来:上述示例中的异常类型依次是:ZeroDivisionErrorNameErrorTypeError

错误和异常处理

try:

<代码块1>

except 异常类型1:

<代码块2>

except 异常类型2:

<代码块3>

except 异常类型n:

<代码块n>

except:

<代码块4>

else:

<代码块5>

finally:

<代码块6>

以上是捕捉和处理错误和异常的基本格式,其中try和except(一个或以上)是必须项,else和finally是可选项。

程序先执行try中代码块,如果没有发生错误,如果有else,则执行else代码块;如果有finally,则执行finally代码块。如果发生错误,则执行对应异常类型的代码块,如果没有找到异常类型,则执行except代码块(即<代码块4>);如果有finally,则执行finally代码块。

finally是无论如何都会执行的代码块。

try:    a = int(input('请输入被除数:'))    b = int(input('请输入除数:'))    print(a/b)except ValueError:    print('请输入整数!')except ZeroDivisionError:    print('除数不能为0!')except:    print('发生错误。')else:    print('正常执行')finally:    print('程序结束!')

运行后,a输入:n

结果:

请输入被除数:a

请输入整数!

程序结束!

运行后,a输入:1,b输入:0

结果:

请输入被除数:1

请输入除数:0

除数不能为0!

程序结束!

运行后,a输入:1,b输入:2

结果:

请输入被除数:1

请输入除数:2

0.5

正常执行

程序结束!

标签: #python致命错误怎么办