Python常见报错,python出现问题及解决方法
事实上,开发一个程序就像预测天气一样。即使代码异常,也应该能够预测并被控制。下面这篇文章主要介绍Python如何处理异常错误报告方法的相关信息。有需要的朋友可以参考一下。
目录
写在前面。什么是异常?如何处理异常?Python标准异常带tryexcept用法示例写在最后。
写在前面
今天的Python笔记是:
一旦异常处理Python脚本中出现异常,程序需要捕捉并处理异常。
异常处理使程序能够在处理异常后继续正常执行,而不会崩溃或停止执行。
什么是异常?
当Python不能正常处理程序时,就会出现异常。是一个异常Python对象,表示有错误。
当Python脚本出现异常时,我们需要捕捉并处理,否则程序会终止执行。
例如:
a=int(input())
x
回溯(最近呼叫):
模块中文件 stdin 的第1行
ValueError:基数为10:“x”的int()的文本无效
在上面的代码中,ValueError是一个异常。通过异常信息,我们可以找到错误所在的行号。
如何处理异常?
在前面的示例中,修改后的代码是:
而True:
尝试:
A=int(输入(请输入一个整数:))
打印(您输入的数字是:,a)
破裂
除了ValueError:
打印(您输入的不是整数!)
请输入整数:3.14。
您输入的不是整数!
请输入整数:a
您输入的不是整数!
请输入一个整数:6。
您输入的数字是:6
在上面的过程中:
这里新增了两个关键词:try和except;如前所述,当我们输入的值不是整数时,int()函数会抛出ValueError异常;然后当在try块中检测到ValueError异常时,try块的后续代码将被终止;而是执行except块的代码;当except ValueError:之后的代码执行完毕后,程序将从while语句的开头继续执行;需要注意的是,只要输入的不是整数,int()函数就会抛出ValueError异常,那么try:之后的break语句就不会执行,程序会一直循环;最后,当输入值为整数时,int()函数不会抛出ValueError异常,try块继续执行,直到遇到break语句,程序退出循环;
try 与 except
Try except语句用于检测Try语句块中的异常,让except语句捕捉异常并处理;
用法
如果不希望程序在异常发生后被迫结束,需要在try语句块中捕捉异常,并在except语句块中处理它。
tryexcept的用法如下:
分析如下:
首先执行try中的语句块。如果在执行try语句块中的语句时发生异常,Python会跳转到except段,从上到下判断抛出的异常对象是否与异常后的异常类匹配,并执行与异常匹配的异常后的第一个语句块,处理异常。如果发生异常,但没有找到匹配的异常类别,则执行except语句后没有任何匹配类型的语句块,异常处理结束。如果其中一个try语句阻塞
一语句里发生了异常,却没有匹配的except子句,也没有不带匹配类型的except部分,则异常将往上被递交到上一层的try/except语句进行异常处理,或者直到将异常传递给程序的最上层,从而结束程序。
例子
来看一段代码:
三个测试如下:
1)以正确的格式输入,则except后面的模块均不会执行,else后的模块会得到执行,finally后面的模块语句会执行。
2)如果b的值被赋为0,则会检测到ZeroDivisionError异常对象,在except ZeroDivisionError:之后的模块会得到执行来处理该异常。异常处理完成后,执行finally后面的语句块。
3)如果只输入a的值,b没有赋值,则try模块中将抛出TypeError异常。在程序的异常处理except中没有列出该类型异常的处理程序模块,则不带异常类型的except模块能够拦截该异常进行处理。异常处理结束后,finally后面的语句也会得到执行。
python标准异常
异常名称 描述
BaseExceptionSystemExitKeyboardInterrupt GeneratorExit ExceptionStopIteration StandardError ArithmeticErrorFloatingPointErrorOverflowErrorZeroDivisionErrorAssertionErrorAttributeErrorEOFErrorEnvironmentErrorOErrorOSErrorWindowsErrorImportErrorLookupErrorIndexErrorKeyErrorMemoryErrorNameErrorUnboundLocalErrorReferenceErrorRuntimeErrorNotImplementedErrorSyntaxErrorIndentationErrorTabErrorSystemErrorTypeErrorValueError UnicodeErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeTranslateErrorWarningDeprecationWarningFutureWarningOverflowWarningPendingDeprecationWarningRuntimeWarningSyntaxWarningUserWarning异常类的大致结构如下所示:
写在最后
到此这篇关于Python如何处理异常报错方法的文章就介绍到这了,更多相关Python异常报错处理内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。