Python withas as为什么无法捕获异常

本文实例讲述了Python 异常的捕获、异瑺的传递与主动抛出异常操作分享给大家供大家参考,具体如下:

demo.py(异常的捕获):

 # 提示用户输入一个整数
 # 使用 8 除以用户输入的整数并苴输出
 print("未发生异常时,执行的代码")
 print("无论是否出现异常都会执行的代码")

无论是否出现异常都会执行的代码

demo.py(异常的传递):

# 利用异常的传递性在主程序捕获异常
 # 如果密码长度>=8,返回用户输入的密码

更多Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家Python程序设计有所帮助。

}

这个语法是用来代替传统的try...finally语法嘚

紧跟withas后面的语句被求值后,返回对象的__enter__()方法被调用这个方法的返回值将被赋值给as后面的变量。当withas后面的代码块全部被执行完之后將调用前面返回对象的__exit__()方法。

使用withas...as...的方式替换修改后的代码是:

}

withas as:withas后面的所求值对象必须有 一个__enter__()方法 和 一个 __exit__()方法该对象被求职后,返回对象的__enter__()方法被调用这个方法的返回值将赋值给as后面的变量。

当withas后面的代码块全部执行完之后將调用前面返回对象的__exit__方法。

以下两代码块的效果相同:

 
}

我要回帖

更多关于 withas 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信