1

私はこの簡単なtry-exceptコードを持っています:

self.tf.router.EchoProg(state=1)
try:
    print "\tCheckTestFirmwareCommunication_SetPort: "  
    print self.tf.DUT.CheckTestFirmwareCommunication_SetPort()
except NoResponseException, e:
    print "\tCheckTestFirmwareCommunication_SetPort: ", repr(e)
self.tf.router.EchoProg(state=0)

例外のある出力:

CheckTestFirmwareCommunication_SetPort:
CheckTestFirmwareCommunication_SetPort: DD_NoResponseException()

質問:

  1. 例外が発生しても印刷ステートメントが表示される理由を誰かが説明できますか?

  2. try-except例外をキャッチした場合、印刷ステートメントを無視することは可能ですか?

4

3 に答える 3

2

例外をスローするのは2行目です。 print

print self.tf.DUT.CheckTestFirmwareCommunication_SetPort()

最初のprint行は実行されず、実行されました。

Python はtryスイート内の各ステートメントを実行し、いずれかが例外をスローした場合にのみ、実行が中止され、exceptブロックに転送されます。が例外をスローしたprintときに最初のステートメントを実行したくない場合は、そのメソッドを最初に呼び出しますCheckTestFirmwareCommunication_SetPort

self.tf.router.EchoProg(state=1)
try:
    port = self.tf.DUT.CheckTestFirmwareCommunication_SetPort()
    print "\tCheckTestFirmwareCommunication_SetPort: "  
    print port
except NoResponseException, e:
    print "\tCheckTestFirmwareCommunication_SetPort: ", repr(e)
self.tf.router.EchoProg(state=0)
于 2014-01-22T14:34:08.793 に答える