Python中的错误可以分为两种类型,即语法错误和异常。错误是程序中的问题,由于这些问题而导致程序停止执行。另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程。
语法错误:顾名思义,此错误是由代码中的错误语法引起的。它导致程序终止。
例
# initialize the amount variable amount = 10000 #检查您是否有资格 #是否购买Dsa Self Paced if(amount>2999) print("You are eligible to purchase Dsa Self Paced")输出:
异常:如果程序在语法上正确,但是代码导致错误,则会引发异常。该错误不会停止程序的执行,但是会改变程序的正常流程。
例:
# 初始化数量变量 marks = 10000 #用0执行除法 a = marks / 0 print(a)输出:
在上面的示例中,由于我们试图将数字除以0,因此引发了ZeroDivisionError。
注意: Exception是Python中所有异常的基类。您可以在此处检查异常层次结构。
让我们尝试访问索引超出范围的数组元素并处理相应的异常。
# Python program to handle simple runtime error a = [1, 2, 3] try: print "Second element = %d" %(a[1]) # 引发错误,因为数组中只有3个元素 print "Fourth element = %d" %(a[3]) except IndexError: print "An error occurred"输出:
Second element = 2 An error occurred一个try语句可以具有多个except子句,以指定不同异常的处理程序。请注意,最多将执行一个处理程序。
# Program to handle multiple errors with one except statement try : a = 3 if a < 4 : # 抛出ZeroDivisionError为a = 3 b = a/(a-3) # 如果> = 4则抛出NameError print "Value of b = ", b # 请注意,对于多个异常,此处需要大括号() except(ZeroDivisionError, NameError): print "\nError Occurred and Handled"输出:
Error Occurred and Handled如果将“ a”的值更改为大于或等于4,则输出为
Value of b = Error Occurred and Handled上面的输出是这样的,因为python一旦尝试访问b的值,就会发生NameError。
在python中,您还可以在该try-except块上使用else子句,该子句必须出现在所有except子句之后。仅当try子句未引发异常时,代码才进入else块。
# Program to depict else clause with try-except #返回a / b的函数 def AbyB(a , b): try: c = ((a+b) / (a-b)) except ZeroDivisionError: print "a/b result in 0" else: print c # 驱动程序测试上述功能 AbyB(2.0, 3.0) AbyB(3.0, 3.0)上面程序的输出将是:
-5.0 a/b result in 0Python提供了一个finally关键字,它总是在try和except块之后执行。在try块正常终止后或由于某些异常try块终止后,finally块始终执行。
句法:
try: # 一些代码... except: #可选块 #处理异常(如果需要) else: # 如果没有异常则执行 finally: # 一些代码...(总是执行)列子:
# Python program to demonstrate finally # 无异常try块中引发异常 try: k = 5//0 # 提出除以零的异常。 print(k) # 处理零分区异常 except ZeroDivisionError: print("Can't divide by zero") finally: #始终执行此块 #不考虑异常的产生。 print('This is always executed')输出:
Can't divide by zero This is always executed引发语句使程序员可以强制发生特定的异常。raise中唯一的参数表示要引发的异常。这必须是异常实例或异常类(从Exception派生的类)。
# 描绘引发异常的程序 try: raise NameError("Hi there") # 引发错误 except NameError: print "An exception" raise # 确定是否引发异常上面代码的输出将简单地以行打印为“异常”,但由于最后一行的raise语句,最后也会发生运行时错误。因此,命令行上的输出将如下所示
Traceback (most recent call last): File "003dff3d748c75816b7f849be98b91b8.py", line 4, in raise NameError("Hi there") # 引发错误 NameError: Hi there使用Python附加到JSON文件
使用Python读取,写入和解析JSON
在Python中初始化:您需要了解的一切
建立数据驱动,关键字驱动和混合Selenium框架这些你了解吗
您需要了解的有关Selenium等待方法
如何在Selenium WebDriver中查找元素?(二)
如何在Selenium WebDriver中查找元素?(一)
python之函数基础