Python了解异常

捕获常规异常:

基本语法:

try:

    可能发生错误的代码

except:

     如果出现异常执行的代码

尝试以r模式打开文件,如果文件不存在,则以w方式打开

try:
   f = open("F:/test.txt","r",encoding ="UTF-8")
except:
   print("出现异常了,因为文件不存在,我将open的模式,改为w模式去打开")
   f = open("F:/test.txt","w",encoding ="UTF-8")

捕获指定的异常:

基本语法

try:

    print(name)

except NameError as e:

    print('name变量名称未定义错误')

try:
   print(name)
except NameError as e:
   print("出现了变量未定义的异常")
   print(e)

捕获多个异常:

当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元组的方式进行书写。

try:

    print(1/0)

except:(NameError,ZeroDivisionError)

    print('ZeroDivision错误...')

try:
   1/0
except (NameError,ZeroDivisionError) as e:
   print("出现了变量未定义 或者 除以0的异常错误")
   print(e)
'''
出现了变量未定义 或者 除以0的异常错误
division by zero
'''

 捕获所有异常:

try:
   print(name)
except Exception as e:
   print("出现异常了")

异常else

else表示的如果没有异常要执行的代码

try

   print(1)

except Exception as e:

   print(e)

else:

   print('我是else,是没有异常的时候执行的代码‘)

异常的finally: 

finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:

    f = open('test.txt','r')

except Exception as e:

    f = open('test.txt','w')

else:

     print('没有异常,真开心’)

finally:

      f.close() 

 异常的传递:

异常是具有传递性的:

当函数fun01中发生异常,并没有捕获处理这个异常的时候,异常会传递到函数fun02,当fun02也没捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。

注意:

当所有函数都没有捕获异常的时候,程序就会报错 

def func1():
   print("func1开始执行")
   num = 1/0
   print("func1结束执行")
def func2():
   print("func2开始执行")
   func1()
   print("func2结束执行")
def main():
   try:
       func2()
   except Exception as e:
      print(f"出现异常了,异常的信息是:{e}")
main()
'''
func2开始执行
func1开始执行
出现异常了,异常的信息是:division by zero
'''

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值