35. try, except, else, finally 의 뜻
try:
minutes = int(raw_value)
except ValueError as error:
print(f"{raw_value!r} 변환 실패: {error}")
return None
else:
print(f"{raw_value!r} 변환 성공")
return minutes
finally:
print("입력 처리를 종료한다.")
try 문법의 기본 구조는 이렇게 이해하면 됩니다.
try:
# 에러가 날 수도 있는 코드
except 어떤에러:
# 그 에러가 발생했을 때 실행
else:
# 에러가 발생하지 않았을 때 실행
finally:
# 성공하든 실패하든 마지막에 실행
36.즉, try문법은 try라는 상황에서, 에러시 except를 실행, 정상일시 else를 실행, 마무리는 레어나 정상 관계없이 finally로.
37.except 는 키워드로 exception(예외)라는 단어로 만들어졌다.
Try 문법에서 x라는 예외사항에서라는 뜻을 가진다(=except x)
그래서 'except 예외사항:' 꼴을 가진다
except ValueError:는
try 안에서 발생한 예외 중에서 ValueError인 경우를 잡아서 처리하겠다는 뜻
처럼 except 바로 뒤에 :가 안 붙고, 뭔가가 더 오는가?
그 이유는 except가 “어떤 예외를 처리할 것인지”를 지정할 수 있는 문법이기 때문입니다.
기본 형태는 이렇습니다;
---------
try:
실행할 코드
except 예외종류:
예외가 발생했을 때 실행할 코드
---------
38.raise가 실행되면 그 순간 함수가 즉시 중단
예.
def get_task(task_id: int) -> str:
if task_id not in TASKS:
raise TaskNotFoundError(f"작업 {task_id}번이 없다")
return TASKS[task_id]
여기서 raise이 발생하면 밑 줄의 return까지 안가고 종료됨
39.언패킹
pair = "파이썬 입문", True
#여기서 패킹이 된다
pair = ("파이썬 입문", True)
title, finished = pair
#여기서 언패킹이 된다
title = "파이썬 입문"
finished = True
print("언패킹:", title, finished)
#print("언패킹:", "파이썬 입문", True) 와 같으니
언패킹: 파이썬 입문 True