# Ошибки

* Ошибки бывают **синтаксические** и **лексические**
* Проверка синтаксиса осуществляется интерпретатором *до выполнения кода*.При отсутствии синтаксических ошибок начинается выполнение кода.
* Ошибки, возникшие *в процессе выполнения кода* называются **лексическими**.

```python
# синтаксические ошибки
print("Hello)
print("Hello"
```

```python
# логическая ошибка
prit("Hello")
# код запустится - но результатом будет ошибка NameError
```

* Если код *запустился*, т.е. *не возникло синтаксических ошибок*, но в ходе выполнения возникла ошибка — мы увидим **обратную трассировку**(трейсбек). Это все шаги работы программы от начала до возникновения ошибки.

```python
a = 5
b = 'H'

print(a + b)

# Traceback (most recent call last):
#	 File "main.py", line 5, in <module>
#	 	print(a + b)
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
```

### Практика

```
Запустите код с урока. Проанализируйте ошибки
```
