一文教你搞定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

在异常处理程序中使用所有这三个块是一个好习惯。

结论:

当我们启动测试程序时,这些概念很方便。

(0)

相关推荐