前言:
而今看官们对“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
错误信息的最后一行说明程序遇到了什么类型的错误。异常有不同的类型,而类型名称会作为错误信息的一部分中打印出来:上述示例中的异常类型依次是:ZeroDivisionError, NameError 和 TypeError。
错误和异常处理
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致命错误怎么办