카테고리 없음

aio3기 오프라인강의 회고 4

doomrender 2026. 9. 21. 18:11

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