Movatterモバイル変換


[0]ホーム

URL:


[Python-Dev] Bare except clauses in PEP 348

Shane Hathawayshane at hathawaymix.org
Wed Aug 24 18:42:21 CEST 2005


Niko Matsakis wrote:>>>> txn = new_transaction()>> try:>>      txn.begin()>>      rtn = do_work()>> finally:>>      if exception_occurred():>>          txn.abort()>>      else:>>          txn.commit()>>          return rtn>>>> Couldn't you just do:>> txn = new_transaction ()> try:>     complete = 0>     txn.begin ()>     rtn = do_work ()>     complete = 1> finally:>     if not complete: txn.abort ()>     else: txn.commit ()>> and then not need new builtins or anything fancy?That would work, though it's less readable.  If I were looking over code like that written by someone else, I'd have verify that the "complete" variable is handled correctly in all cases.  (As Martin noted, your code already has a bug.)  The nice try/except/else idiom we have today, with a bare except and bare raise, is much easier to verify.Shane


More information about the Python-Devmailing list

[8]ページ先頭

©2009-2025 Movatter.jp