Capturando diferentes tipos de exceções em Python

No mesmo código, pode ser necessário capturar diferentes tipos de exceções.

Suponha que precisemos capturar uma exceção ao dividir por zero. Nesse tipo de erro, é lançada a exceção:

errorZeroDivisionError: division by zero

Para capturá-la, o nome da exceção deve ser especificado no bloco except:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('erro: não divida por zero')

Suponha também que tenhamos uma lista:

pythonlst = [1, 2, 3]

Se, no bloco try, houver código com outro erro potencial, por exemplo, ao acessar um elemento que não existe, a exceção não capturada pelo bloco except será propagada e exibida no console. Isso fará com que a execução do código seja interrompida:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # lançará IndexError: list index out of range
except ZeroDivisionError:
  print('erro: não divida por zero')

Para resolver essa situação, é necessário especificar o nome do tipo correspondente de exceção em cada bloco. Vamos adicionar ao nosso código a exceção para um elemento inexistente:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('erro: não divida por zero')
except IndexError:
  print('erro: elemento não existe')
Задание 1

Dado o seguinte código:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Escreva o código para capturar as exceções apresentadas nas variáveis res1 e res2.