try:
handle = pictures.setdefault(path, open(path, "a+b"))
except OSError:
print(f"파일을 열 수 없음: {path}")
raise
else:
handle.seek(0)
image_data = handle.read()
이 코드에는 문제가 많다. 파일 핸들을 만드는 내장 함수인 open이 딕셔너리에 경로가 있는지 여부와 관계없이 항상 호출된다. 이로 인해 같은 프로그램상에 존재하던 열린 파일 핸들과 혼동할 수 있는 새로운 파일 핸들이 생길 수도 있다. open이 예외를 던질 수 있으므로 이 예외를 처리해야 한다. 하지만 이 예외를 같은 줄에 있는 setdefault가 던지는 예외와 구분하지 못할 수도 있다(딕셔너리와 비슷한 구현을 사용하면 이런 예외가 발생할 수 있다. 아이템 57 “커스텀 컨테이너 타입은 collections.abc를 상속하라” 참조).