На девятой неделе курса информатики по Python вы научитесь делать свои программы более надёжными. Мы изучим обработку исключений, логирование, типичные ошибки и методы отладки. Это позволит вашим программам корректно реагировать на сбои и ошибки.
Исключения — это ошибки, которые возникают во время выполнения программы и нарушают её нормальное выполнение.
Примеры:
- `ZeroDivisionError`
- `FileNotFoundError`
- `ValueError`
```python```
try:
x = int(input("Введите число: "))
y = 10 / x
except ValueError:
print("Ошибка: введите число!")
except ZeroDivisionError:
print("Ошибка: деление на ноль!")
Блок `else` выполняется, если не произошло исключений.
Блок `finally` выполняется в любом случае — даже если возникла ошибка.
```python```
try:
f = open("data.txt", "r")
except FileNotFoundError:
print("Файл не найден.")
else:
print("Файл открыт.")
finally:
print("Готово.")
Можно генерировать свои исключения с помощью `raise`:
```python```
def divide(a, b):
if b == 0:
raise ValueError("Нельзя делить на ноль")
return a / b
```python```
class NegativeNumberError(Exception):
pass
def sqrt(x):
if x < 0:
raise NegativeNumberError("Число не может быть отрицательным")
Для отладки часто используют:
- `print()` — простой способ понять, где ошибка;
- `traceback` — модуль для получения стек-трейса;
```python```
import traceback
try:
1 / 0
except:
traceback.print_exc()
Для системного контроля используется `logging`:
```python```
import logging
logging.basicConfig(level=logging.INFO)
logging.info("Программа запущена")
1. Напишите калькулятор с обработкой исключений.
2. Реализуйте чтение из файла с логированием ошибок.
3. Создайте собственное исключение и вызовите его.