Pythonにおける異なるタイプの例外のキャッチ

同じコード内で、さまざまなタイプの例外を キャッチする必要が生じることがあります。

例えば、ゼロ除算の例外をキャッチする必要があるとします。 この種のエラーが発生すると、次の例外が発生します:

errorZeroDivisionError: division by zero

これをキャッチするには、例外名を exceptブロックに記述します:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('error: do not divide by zero')

また、次のようなリストがあるとします:

pythonlst = [1, 2, 3]

tryブロックに、存在しない要素へのアクセスなど、 他の潜在的なエラーを含むコードを記述した場合、 exceptブロックでキャッチされなかった例外は そのまま通過し、コンソールに出力されます。 その結果、コードの実行が停止してしまいます:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # IndexError: list index out of range を出力
except ZeroDivisionError:
  print('error: do not divide by zero')

このような状況を解決するには、各ブロックで 対応する例外タイプの名前を指定する必要があります。 存在しない要素へのアクセスに対する例外を コードに追加してみましょう:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('error: do not divide by zero')
except IndexError:
  print('error: elem is not exist')
Задание 1

次のコードが与えられています:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

変数res1とres2で発生する 例外をキャッチするコードを記述してください。