# 에러 처리하기
```python
short_list = [1, 2, 3]
position = 5
try:
short_list[position]
except:
print('Need a position between 0 and', len(short_list) - 1, 'but got', position)
```
## 예외사항 세부정보 얻기
*except 예외 타입 as 이름*
```python
while True:
value = input('Position [q to quit]? ')
if value == 'q':
break
try:
position = int(value)
print(short_list[position])
except IndexError as err:
print('Bad index', position)
except Exception as other:
print('Something else broke:', other)
```
# 예외 만들기
예외는 파이썬 표준 라이브러리에 정의되어 있지만(ex IndexError) 사용자는 예외 타입을 정의할 수 있다.
예외는 클래스이고, Exception 클래스의 자식이다.
```python
class UppercaseException(Exception):
pass
words = ['eeenie', 'meenie', 'miny', 'MO']
for word in words:
if word.isupper():
raise UppercaseException(word)
```