Python异常捕捉的一个小问题
问题:
names = ['taotao','songwenjing','liu','li']
I = iter(names)
while True:
try:
s = next(I)
except Exception as err:
print(err)
break
print(s)
为什么这段代码运行不打印err也是就是StopIteration呢?
----------------------------------------------------------------------------------
l = iter(names)
while True:
try:
s = next(l)
except Exception as err:
print(err)
#break #把这个break注释掉,发现print(err)打印的是一个空行,而且循环还在执行,说明没有捕获到异常
print(s)
# taotao
# songwenjing
# liu
# li
#
# li
#
# li
#下一步探究为什么没有捕获到StopIteration异常
names = ['taotao','songwenjing','liu','li']
l = iter(names)
while True:
try:
s = next(l)
except Exception as err:
print(type(err))
break
print(s)
# taotao
# songwenjing
# liu
# li
# <class 'StopIteration'>
由结果可知,是捕捉到了StopIteration的一个实例,可能是由于StopIteration类没有实现__str__()方法,故print(err)打印不出任何结果。
最新文章
- linux(十一)__Apache服务器
- mysql group_concat 使用 (按分组组合字段)
- mysql 导出表结构和表数据 mysqldump用法
- 将 Book-Crossing Dataset 书籍推荐算法中 CVS 格式测试数据集导入到MySQL数据库
- Ubuntu彻底删除MySQL重装MySQL
- iOS面试和招聘
- DATE,DATETIME,DATETIME2等日期时间数据类型
- CS0016: 未能写入输出文件的解决方法
- Red and Black
- sublime支持显示中文
- Secure CRT 如何连接虚拟机里面的CentOS系统——当主机使用无线网的时候 作者原创 欢迎转载
- Light Bulb--zoj3203(三分法)
- javascript 日期对象(date)详解
- Vue2.0 --- vue-cli脚手架中全局引入JQ
- os模块walk方法
- CEF 自定义用户协议(scheme)实现以二进制流的方式显示图片、视频、音频
- 关于Image创建的内存管理
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- Java 之外,是 Scala 还是 Groovy?【转载】
- 为什么 PCB 生产时推荐出 Gerber 给工厂?
热门文章
- RDA Kconfig介绍 ***
- attr 和 prop的区别和使用
- activity工作流表结构分析
- linux编译安装gcc5.3.0
- 构造+暴力 Codeforces Round #283 (Div. 2) B. Secret Combination
- RHEL5.6环境下yum安装MySQL
- (转)全文检索技术学习(三)——Lucene支持中文分词
- POJ_3041_Asteroids
- HDU_1207_汉诺塔2
- 导出数据到Excel表格