데이터 분석 공부/Python
PYTHON 정리(Try-Except)(24.01.04)
세조목
2024. 1. 4. 22:39
Try-Except
Try-Except문은 에러가 있어도 건너뛰게 할 수 있는 기능이다.
students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee', 'age' = 25},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}
위와 같은 딕셔너리 리스트가 있다고 가정해보자
나이가 25살 이상인 사람들의 이름만 출력하고싶다면 코드는 다음과 같을 것이다.
students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee', 'age' = 25},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}
for i in students:
if i['age'] > 25:
print(i['name'])
그런데 만약 하나의 딕셔너리 內 age가 기재되어있지 않다면
오류값이 나올 것이다.
students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee'},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}
for i in students:
if i['age'] > 25:
print(i['name'])
이 때 Try-Except문을 사용할 수 있다.
students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee'},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}
for i in students:
try:
if i['age'] > 25:
print(i['name'])
except:
name = i['name']
print(f'{name} - 에러입니다')
>>> Lee - 에러입니다
>>> Song
위 코드를 보면 25세를 초과한 사람의 이름인 'Song'이 출력되고
age가 없는 'Lee'의 이름과 함께 '에러입니다'라는 메시지가 반환된다.
유용한 기능이긴하지만 try-except 기능을 남발하면 어디에서 오류가 발생했는지 알 수가 없고
성능면에서도 좋지 않기때문에 남용하는 것은 금물이다.