【Python】易错点2——异常处理

1.异常处理 ——try 

异常

程序在运行的时候,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误的信息,这就是异常。

我们在程序开发的时候,很难将所有的特殊情况都处理,通过异常捕获可以针对突发事件做集中处理,从而保证程序的健壮性和稳定性。

在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确)可以增加try来捕获异常。

开发中常用的11种异常描述

 

 try...except...

 try:
        1

except:

        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的函数,用于执行除法操作。函数接收两个参数ab,并尝试计算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)
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值