47

コードを実行すると:

connection = manager.connect("I2Cx")

I2Cx が存在しないため (I2C である必要があります)、プログラムがクラッシュし、KeyError が報告されます。

しかし、もしそうなら:

try:
    connection = manager.connect("I2Cx")
except Exception, e:
    print e

e については何も出力しません。スローされた例外を出力できるようにしたいと思います。ゼロ除算操作で同じことを試みると、どちらの場合も正しくキャッチされ、報告されます。ここで何が欠けていますか?

4

7 に答える 7

6

例外からエラーメッセージを取得する方法については、例外をスローしているライブラリのドキュメントを参照してください。

または、この種のものをデバッグする良い方法は、次のように言うことです:

except Exception, e:
    print dir(e)

プロパティが持つものを確認するには、おそらくプロパティまたは類似eのものがあることがわかります。message

于 2013-04-22T18:25:46.237 に答える
2

get()たとえば、次のように使用することもできます。

connection = manager.connect.get("I2Cx")

キーが存在しない場合は発生しませKeyErrorん。

キーが存在しない場合は、2 番目の引数を使用してデフォルト値を指定することもできます。

于 2015-05-05T12:10:56.897 に答える
1

エラーを処理したくない場合は、次のようNoneTypeに使用しますget()

manager.connect.get("")
于 2016-11-11T04:01:23.003 に答える