Movatterモバイル変換
[0]ホーム
[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]ページ先頭