1.异常处理 ——try
异常
程序在运行的时候,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误的信息,这就是异常。
我们在程序开发的时候,很难将所有的特殊情况都处理,通过异常捕获可以针对突发事件做集中处理,从而保证程序的健壮性和稳定性。
在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确)可以增加try来捕获异常。
开发中常用的11种异常描述
try...except...
try:
1except:
2
示例
捕获ZeroDivisionError
def divide(a,b):
try:
result=a/b
return result
except ZeroDivisionError:
print("fenmu not 0")
raise
通过raise
语句抛出这个异常
try:
n1=10
n2=0
result=divide(n1,n2)
print(f"result is {n1}/{n2}={result}")
except ZeroDivisionError:
print("除数为0的错误捕获成功")
解释
本示例定义了一个名为divide_number
的函数,用于执行除法操作。函数接收两个参数a
和b
,并尝试计算a/b
的值。如果除数为0,则会捕获ZeroDivisionError
异常,并打印错误消息。
在主程序中,将10除以0,这将触发divide_number
函数中的ZeroDivisionError
异常。当捕获到异常时,程序将打印出错误消息,并继续执行后续的代码。
万能异常Exception
异常类只能来处理指定的异常情况,如果非指定异常则无法处理 如果你不知道可能会出现哪种异常,有二种方案,一是把所有可能的罗列出来,另一种是使用万能异常exception。s1 = 'hello'
try:
int(s1)
except Exception as e:
print(e)
try..except...else...finally
流程
示例
s1 = 'hello'
try:
int(s1)
except IndexError as e:
print(e)
except KeyError as e:
print(e)
except ValueError as e:
print(e)
# except Exception as e:
# print(e)
else:
print('try内代码块没有异常则执行我')
finally:
print('无论异常与否,都会执行该模块,通常是进行清理工作')
raise
作用
触发一个错误,让程序进入异常状态,发送错误通知给程序调用者——主动触发异常
示例
def divide(a,b):
if b==0:
raise ValueError("除数不能为0")
return a/b
try:
divide(5,0)
except ValueError as e:
print("Error is ",e)
标签:易错,divide,Python,except,try,result,print,异常
From: https://blog.csdn.net/2302_81240667/article/details/139539454