Python常见报错,python出现问题及解决方法

  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语句进行异常处理,或者直到将异常传递给程序的最上层,从而结束程序。

  • 如果try语句块中的任何语句在执行时没有发生异常,Python将执行else语句后的语句块。
  • 执行完except后的异常处理语句或else后面的语句块后,程序一定会执行finally后面的语句块。这里的语句块主要用来进行收尾操作,无论是否出现异常都将被执行。
  • 一个异常处理模块至少有一个try和一个except语句块,else和finally语句块是可选的。
  •   

      

    例子

      来看一段代码:

      

      三个测试如下:

      1)以正确的格式输入,则except后面的模块均不会执行,else后的模块会得到执行,finally后面的模块语句会执行。

      

      2)如果b的值被赋为0,则会检测到ZeroDivisionError异常对象,在except ZeroDivisionError:之后的模块会得到执行来处理该异常。异常处理完成后,执行finally后面的语句块。

      

      3)如果只输入a的值,b没有赋值,则try模块中将抛出TypeError异常。在程序的异常处理except中没有列出该类型异常的处理程序模块,则不带异常类型的except模块能够拦截该异常进行处理。异常处理结束后,finally后面的语句也会得到执行。

      

      

      

    python标准异常

      异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)GeneratorExit 生成器(generator)发生异常来通知退出Exception常规错误的基类StopIteration 迭代器没有更多的值StandardError 所有的内建标准异常的基类ArithmeticError所有数值计算错误的基类FloatingPointError浮点计算错误OverflowError数值运算超出最大限制ZeroDivisionError除(或取模)零 (所有数据类型)AssertionError断言语句失败AttributeError对象没有这个属性EOFError没有内建输入,到达EOF 标记EnvironmentError操作系统错误的基类IOError输入/输出操作失败OSError操作系统错误WindowsError系统调用失败ImportError导入模块/对象失败LookupError无效数据查询的基类IndexError序列中没有此索引(index)KeyError映射中没有这个键MemoryError内存溢出错误(对于Python 解释器不是致命的)NameError未声明/初始化对象 (没有属性)UnboundLocalError访问未初始化的本地变量ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError一般的运行时错误NotImplementedError尚未实现的方法SyntaxErrorPython语法错误IndentationError缩进错误TabErrorTab和空格混用SystemError一般的解释器系统错误TypeError对类型无效的操作ValueError 传入无效的参数UnicodeErrorUnicode相关的错误UnicodeDecodeErrorUnicode 解码时的错误UnicodeEncodeErrorUnicode 编码时错误UnicodeTranslateErrorUnicode转换时错误Warning警告的基类DeprecationWarning关于被弃用的特征的警告FutureWarning关于构造将来语义会有改变的警告OverflowWarning旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning关于特性将会被废弃的警告RuntimeWarning可疑的运行时行为(runtime behavior)的警告SyntaxWarning可疑的语法的警告UserWarning用户代码生成的警告

      异常类的大致结构如下所示:

      

      

      

    写在最后

      到此这篇关于Python如何处理异常报错方法的文章就介绍到这了,更多相关Python异常报错处理内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

    郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

    留言与评论(共有 条评论)
       
    验证码: