簡體   English   中英

如何在python中處理boto異常?

[英]How can I handle a boto exception in python?

如何在python中包裝boto.storage_uri()調用,以便我可以處理可能的異常?

關於Boto的問題很好,並不容易回答。 Boto異常層次結構的設計很差,最終確定要捕獲的異常的唯一方法是查看boto源代碼。

例如,如果您查看(在Ubuntu上)/usr/share/pyshared/boto/exception.py,您將看到有兩大類:boto.exception.BotoClientError boto.exception.BotoServerError

許多例外都是從這兩個例子中得出的,雖然“客戶”和“服務器”的概念定義不是很明確,你可能想要檢查兩者,以確保許多例外可能發生意外(像往常一樣)。 但是,諸如boto.exception.NoAuthHandlerFound之類的異常直接從Exception派生,因此您必須單獨檢查它。

不幸的是,通過查看代碼,似乎在Boto中定義異常層次結構時既不一致也不在意,這是Boto設計中的一個缺陷,遺憾的是,您需要依賴比通常建議的更廣泛的異常檢查。

第一個問題是這個電話可能產生的例外情況是什么? 您不希望使用任何語言創建一個簡單的異常處理程序。 您應首先查看Boto文檔 ,看看它是否記錄了您在給定調用中可能看到的異常,但如果不是,我會首先嘗試:

try:
  uri = boto.storage_uri()
except Exception, e:
  print e

或者記錄異常(使用日志exception方法),但無論哪種方式,您都要記錄在測試時看到的異常類型以及是否應該特別處理它們中的任何異常。 您還可以查看有關異常和錯誤的Python教程部分。

查看boto3源代碼,Boto3Error被聲明為所有boto錯誤的基礎。 所以,你可以這樣做:

try:
    boto.storage_uri()
except Boto3Error:
    # handle errors

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM