python Intel Real Sense D435 异常检测与抛出(获取/打印异常详细信息 traceback.print_exc())
文章目錄
- 背景描述
- 首先熟悉一下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斷開異常
打印異常信息為:
那么,我們該如何指定捕獲它呢?
獲取異常詳細信息
通過代碼:
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())的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 如何获取系统当前时间?da
- 下一篇: Intel Realsense pyre