文章目录

  • 背景描述
  • 首先熟悉一下python异常处理的几个关键字
  • 摄像头USB断开异常
  • 获取异常详细信息

背景描述

在摄像头运行的时候,有时候会遇到一些错误,比如帧传输错误引起的程序结束,

但更为严重的是摄像头USB线的断连,

如何检测这种不同严重程度的错误并对错误进行相应的处理,是我们需要考虑的

如果摄像头出现问题,如何检测出这是软掉线(如帧传输错误)还是硬掉线(USB因外力或震动接触不良)呢?

有没有办法通过对报错类型的分辨达到我们对异常结果检测的目的呢?

首先熟悉一下python异常处理的几个关键字

pass 什么都不做,按照程序正常流程运行
else 无异常情况下运行(如果捕获到异常就不执行)
finally 无论怎么都要运行

同样,在循环内使用异常捕获语句(try…except),和将循环应用在异常捕获语句(try…except)中,又可能会产生不同的效果。。

在循环中合理使用continue、break也能使程序产生不同结果。。。

获取异常信息:

try:...
except Exception as e:error=str(e)print(error)

except: 捕捉所有(其他)异常类型
except name: 只捕捉特定的异常
except name,value: 捕捉所有的异常和其额外的数据(或实例)
except (name1,name2) 捕捉任何列出的异常
except (name1,name2),value: 捕捉任何列出的异常,并取得其额外数据
else: 如果没有引发异常,就运行
finally: 总是会运行此代码块,无论是否发生异常
except:用在想不到异常情况,在except:前面可以定义可以想到的异常:except name1: except name2:
raise: 手动在代码中接触发异常。

摄像头USB断开异常


打印异常信息为:

Exception: Frame didn't arrived within 5000

那么,我们该如何指定捕获它呢?

获取异常详细信息

通过代码:

import tracebacktry:1/0
except Exception as e:traceback.print_exc()


貌似打印出来啥也没有啊??

哦,还是有的,它把之前一旦报错就结束程序的信息给打印出来了。。

那么,解决方案就是,将捕捉runtime error后处理设定标记,跳出循环,重新配置,其余继续在本循环内运行?

参考文章1:python捕获异常及方法总结

参考文章2:关于python异常捕获的测试 - 炊烟的文章 - 知乎

参考文章3:python——获取更加详细的异常信息

python Intel Real Sense D435 异常检测与抛出(获取/打印异常详细信息 traceback.print_exc())相关推荐

  1. oracle异常抛出,ORACLE 存储过程异常捕获并抛出

    for tab_name in tables loop execute immediate 'drop table '||tab_name; --此处可能会报错 end loop; 当前情况是,循环表 ...

  2. Intel Real Sense D435查看器读取深度图信息

    TOC Intel Real Sense D435查看器读(Intel Real Sense Viewer)取深度图信息 ** 下载Intel Real Sense D435查看器(下面简称查看器) ...

  3. 如何开发一个异常检测系统:如何评价一个异常检测算法

    利用数值来评价一个异常检测算法的重要性 使用实数评价法很重要,当你用某个算法来开发一个具体的机器学习应用时,你常常需要做出很多决定,如选择什么样的特征等等,如果你能找到如何来评价算法,直接返回一个实数 ...

  4. python输入字符a时停止_Python解释器在主提示符或从属提示符后输入中断符( )就会取消当前输入,回到主提示符,会抛出一个KeyboardInterrupt异常。...

    [单选题]下列对于字符编码的发展历史节点,正确的是( ). [单选题]Python3解释器执行 not 1 and 1的结果为( ). A. B. C. 0 D. 1 [单选题]Python3解释器执 ...

  5. java抛出数组格式异常,Java中异常

    一.异常的概述 在Java中,把异常信息封装成了一个类.当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置.原因等). 二.异常的继承体系和错误的区别 1.异常的继承体系 Thr ...

  6. C++ throw:抛出自己的异常

    throw 是C++中的关键字,用来抛出异常.如果不使用 throw 关键字,try 就什么也捕获不到:上节提到的 at() 函数在内部也使用了 throw 关键字来抛出异常. throw 既可以用在 ...

  7. ORACLE 存储过程异常捕获并抛出

    ORACLE 存储过程异常捕获并抛出 参考文章: (1)ORACLE 存储过程异常捕获并抛出 (2)https://www.cnblogs.com/wdw31210/p/7009731.html 备忘 ...

  8. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

    文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任意类型对象 V 自定义异常 VI 异常相关代码 I 异常处理 1. 异常处理 : 使用 " try{}catch(){ ...

  9. vs2017c语言单元测试,vs2017单元测试没反应,检测出错误,有关详细信息,请查看“测试输出”窗口...

    vs2017单元测试,.NET Core新建项目有此项目, 单元测试代码,发现[Fact]无法识别,测试项目没有引用XUnit,好吧,Nuget此程序集 namespacexunitProject { ...

最新文章

  1. [BSidesSF2020]haystack
  2. 手势识别兼容Android 1.x和2.x的代码【转】
  3. 莫比乌斯反演 做题记录
  4. 007_Web to lead
  5. DistBelief 框架下的并行随机梯度下降法 - Downpour SGD
  6. linux中pri=100,浅析Linux中PRI和NI的关系
  7. 博客园---博客美化汇总
  8. SAP License:制造行业环境分析
  9. servlet提交表单(思考了好多天)
  10. 黑白翻转棋算法java实现_黑白翻转棋算法java实现
  11. 数据结构 树的遍历(递归遍历练习)
  12. ActiveMQ(一):ActiveMQ的下载安装(win10)
  13. 毕业论文格式大全、排版技巧及常见问题汇总
  14. 2016/2/19:ApplePay
  15. 聊一聊接口测试流程(测试工作面试题必问)
  16. React之Redux
  17. 机器人编程趣味实践19-武林秘籍(文档)
  18. 《中台产品经理宝典》读后感11:大白话说透时下备受追捧的数字化转型是什么?
  19. 网络分析仪测试线损_手把手教你用2端口网络分析仪进行阻抗调试分析--网络分析仪维修...
  20. ppt中的流程图怎么整体移动_ppt里流程图随意移动的动画如何制作?

热门文章

  1. 记事本 换行符_30年后终更新!新一代Win10记事本详细体验
  2. rog live service是什么_王者荣耀日活跃用户破亿!ROG游戏手机助力水友赛进入4强争夺...
  3. 【PP生产订单】入门介绍(十三)
  4. 根据长文本拆分至内表
  5. LSMW批处理使用方法(08)_步骤8、9
  6. OLAP是什么意思?
  7. sap 提取字符串中汉字
  8. SAP-检查多个关联字段输入,以及有条件地调用模块
  9. SAP-FICO学习笔记
  10. SUBMIT - selscreen_parameters