を変更せずに例外を発生しますPythonのトリガ機能は、コードブロックとそれに
1 import re
2 import sys
3 import traceback
4
5 def foo(arg):
6 if isinstance(arg, dict):
7 return arg.get('key', 0)
8 return 0
9
10 arg = {}
11
12
13
14 try:
15 foo(arg)
16 except Exception:
17 lines = traceback.format_exception(*sys.exc_info())
18 for line in lines:
19 m = re.match(r' File .*, line (\d+), in foo\n.*\n', line)
20 if m and int(m.group(1)) < 5:
21 print("Foo threw!")
22 sys.exit()
23 raise
24 else:
25 sys.stderr.write("foo did not throw!")
質問です:私はこれで到達することができ、最終的なコードの制御フローを作成し、ライン10から14の間でいくつかのコードのロジックを追加することができます、Foo threw!
が印刷されましたか?注意してください.1行目〜10行目と14行目以降のコードは変更できません。
< 5
に対してテスト、「保護」で、それは
if
ので、うまくいきませんでしたそれで
foo()
を置き換え、例外を発生させる別の関数を書くことを試みた
例外が行の前に起こった 5.
あなたの質問は何ですか? 10行目と14行目の間にコードを書くようにお願いしていますか?もしそうなら、あなたは何を試しましたか、どこに難易度がありますか? –