[swift] 에러를 처리하는 동시에 리소스 정리하는 방법
에러를 처리하면서 리소스를 정리하는 방법은 defer
키워드를 사용하는 것이 유용합니다. defer
블록 내에서 리소스를 정리하면 함수가 종료될 때 실행되어 리소스 누수를 방지할 수 있습니다.
예를 들어, 파일을 열고 작업을 수행한 후 파일을 닫아야 하는 경우를 생각해보겠습니다. 다음은 파일을 열고 defer
블록 내에서 파일을 닫는 예제 코드입니다.
func processFile(filename: String) {
let file = openFile(filename)
defer {
closeFile(file)
}
// 파일에서 데이터를 읽거나 쓰는 작업 수행
// ...
// 예외가 발생할 수 있는 작업 수행
// 에러 발생 시 리소스가 정리됨
}
위 코드에서 defer
블록은 processFile
함수가 종료될 때 파일을 닫도록 보장합니다.
이러한 방식으로, 에러 처리를 하면서 리소스를 안전하게 정리할 수 있습니다.
참고 자료: