Зробіть так, щоб програма працювала, а всі типи винятків
виводились у консоль
result = []
def divider(a, b):
if a < b:
raise ValueError
if b > 100:
raise IndexError
return a/b
data = {10: 2, 2: 5, "123": 4, 18: 0, []: 15, 8 : 4}
for key in data:
res = divider(key, data[kem])
result.append(res)
print(result)
Ответы
Ответ:
Правильним рішенням було б обернути виклик функції divider у блок try-except і перехоплювати всі можливі винятки. У разі виникнення винятку, потрібно було б вивести повідомлення про помилку в консоль і додати значення None у список result.
Ось приклад, який вигляд матиме код:
python
Copy code
result = []
def divider(a, b):
if a < b:
raise ValueError
if b > 100:
raise IndexError
return a/b
data = {10: 2, 2: 5, "123": 4, 18: 0, []: 15, 8 : 4}
for key in data:
try:
res = divider(key, data[key])
except (ValueError, IndexError, TypeError) as e:
print(f"Error: {e}")
res = None
result.append(res)
print(result)
Тут ми обернули виклик функції divider у блок try-except і перехоплюємо всі можливі винятки. Якщо виняток виникає, ми виводимо повідомлення про помилку в консоль і додаємо значення None до списку result.