p.605 코루틴 종료에 관해 질문드립니다.
, 권 재성님이 작성41.3.1 GeneratorExit 예외 처리하기 부분에서
'코루틴 객체에서 close 메서드를 호출하면 코루틴이 종료될 때
GeneratorExit 예외가 발생한다.' 라고 되어있습니다.
첫 번째 첨부 파일은 Visual Studio Code를 사용하여 c.close()를 지운 뒤
코드를 실행시켰습니다. (python 3.10 64bit 입니다.)
그리고 두 번째 첨부 파일은 이 사이트의 파이썬 시각화를 이용해서
동일한 코드를 실행시켰습니다.
근데 첫 번째에서는 '코루틴 종료' 메세지가 뜨고 두 번째는 안 뜹니다.
이게 무슨 차이고 어느 쪽이 맞는 걸까요?
Re: p.605 코루틴 종료에 관해 질문드립니다.
, 도장_ 관리자님이 작성co.close()는 코루틴을 종료하는 함수이고,
코루틴을 종료할 때 GeneratorExit 예외가 발생합니다.
co.close()를 호출하지 않으면 코루틴은 종료되지 않고 계속 유지됩니다. 따라서 GeneratorExit 예외가 발생하지 않습니다.
코루틴을 종료하고 프로그램을 종료하는 것과
코루틴을 종료하지 않고 프로그램을 종료하는 것의 차이일 뿐입니다.
프로그램 종료까지 코루틴을 종료하지 않는다면 co.close()를 호출하지 않아도 될 뿐입니다.