一文教你搞定Python中的异常处理概念!梳理与总结
在本文中,我们将尝试使用python错误处理,except和finally关键字用于处理文件和数据管理。
通常,错误在这三个类别中进行了描述,如下所示:
编译时错误:当我们执行一些语法错误(例如缺少某些内容,拼写错误,使用了未定义的变量等)时,这些类型的错误会在编译时出现。
逻辑错误:程序正常运行或编译一但出现错误或不期望的输出时,会出现这种类型的错误。因此,这种错误称为逻辑错误。
运行时错误:在执行过程中,此错误发生在程序中间。例如,除以零,编码,I / O或逻辑错误。
当程序中发生错误时,异常处理是一种非常实际的处理异常的方法,在这种情况下,解释器将停止并引发异常,直到对其进行处理为止。为了在程序中处理这些类型的异常以继续执行,我们学习了异常处理方法。
python示例
x = 4 y = 2 print(x/y) #output: 2
在这里,由于执行了print语句,因此得到输出“ 2”。我们还可以打印另一条语句来检查整个程序是否正确执行。
x = 4 y = 2 print(x/y) print("All Well") #output: 2 All Well
程序正确执行。如果我们将“ y”变量的值更改为“ 0”,那将会发生什么?
x = 4 y = 0 print(x/y) print("All Well") #output: ZeroDivisionError : division by zero
该程序给出一个错误,并告诉它没有被零除。需要注意的另一件事是,第二个print语句未打印,因为该错误出现在第二个print语句之前。
因此,通过try和except块来处理此类错误,如下例所示:
x = 4 y = 0 #将关键语句放在try块中 try: print(x/y) except Exception: print("You can not divide the number by Zero") print("All Well") #output: You can not divide the number by Zero All Well
上面的示例处理了异常块中的关键语句,并且程序的执行过程一直在错误发生之后继续进行。我们还注意到第二条打印语句也已执行。
如果没有错误,则将执行try块中的print语句,但不会执行异常块。
如果我们还要打印错误语句,如下例所示,该怎么办:
x = 4 y = 0 try: print(x/y) except Exception as e: print("Error:", e) print("All Well") #output: Error: division by zero
当我们使用文件和数据资源时,关闭它也非常重要。下面的示例显示了如何以及在哪个块中关闭文件或资源。
x = 4 y = 0 try: print("file opened") print(x/y) print("file closed") except Exception as e: print("Error:", e)
在这种情况下,我们打开文件并在try块中也将其关闭,但是如果之间有错误,则执行跳转到异常块,并且“文件已关闭”语句不会处理。
#output: file opened Error: division by zero
收到错误后,我们的文件仍然打开。如果我们将“文件已关闭”语句放在异常块中,则它将关闭文件。但是,如果我们没有收到错误,则except块将不会执行,并且图块仍会打开。
为了使文件或资源有错误或无错误地关闭,我们使用finally块。在该块中,try或except块的执行之后,此finally块将每次执行。因此,我们应该将“文件关闭”语句保留在“最终”块中。
例子:
x = 4 y = 0 #putting critical statement in try block try: print("file opened") print(x/y) #handling the critical statement in except block except Exception as e: print("Error:", e) finally: print("file closed") #output: file opened Error: division by zero file closed
在异常处理程序中使用所有这三个块是一个好习惯。
结论:
当我们启动测试程序时,这些概念很方便。