[LEVEL 1] 15 - Error #35
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
close #17
15-Error
1. Swift의 에러 처리 방법에 대해 설명해주세요.
Swift에서 에러 처리는 프로그램 실행 중 발생할 수 있는 예외 상황에 대비하여 오류가 발생할 수 있는 부분을 명시적으로 표현하고 이를 강제적으로 처리하도록 하여 안정적으로 코드가 실행될 수 있도록 도와줍니다. Swift는 명확하고 안전한 에러 처리를 제공하며, Error 프로토콜과 do-catch 구문, throws 키워드, try 구문 등을 사용해 에러를 처리합니다.
2. throws, try, catch 키워드의 사용 방법은 무엇인가요?
Error 프로토콜
throws 키워드
try 키워드
try 키워드는 에러가 발생할 수 있는 함수 호출 앞에 붙이며, 호출 시 에러가 발생할 경우 이를 상위 코드로 전달합니다.
에러 처리 방법에 따라 try, try?, try!를 사용할 수 있습니다.
do-catch 구문
defer 구문
defer 구문은 코드 블록이 종료되기 직전에 실행할 코드를 작성할 때 사용합니다. 예를 들어, 파일 닫기, 리소스 해제와 같은 작업을 수행할 때 유용합니다.
do-catch 구문 내부에서도 defer를 사용하여 에러 발생 여부와 관계없이 마지막에 반드시 실행될 코드를 지정할 수 있습니다.
3. 옵셔널을 사용한 에러 처리와 do-catch를 사용하는 에러 처리의 차이는 무엇인가요?
옵셔널을 사용한 에러 처리와 do-catch를 사용한 에러 처리의 가장 큰 차이는 에러의 발생 여부를 어떻게 다루고, 에러에 대해 얼마나 상세히 처리할 수 있는지 여부입니다. 옵셔널은 에러 발생 시 nil로 결과를 표현하는 반면, do-catch는 에러를 구체적으로 처리할 수 있는 구조를 제공합니다. 이 차이는 주로 에러를 간단히 무시할지 또는 에러를 구체적으로 다뤄야 하는지에 따라 선택할 수 있습니다.
옵셔널을 사용한 에러 처리 (try?)
try? 키워드를 사용하면, 에러가 발생할 수 있는 함수 호출 결과를 옵셔널 타입으로 반환합니다. 이 방식은 에러가 발생했을 때 해당 값을 nil로 표현하여, 에러에 대한 구체적인 처리를 생략하고 단순히 값이 없음을 표시하는데 유용합니다.
do-catch를 사용한 에러 처리
do-catch 구문은 에러를 명시적으로 처리하고, 발생한 에러를 분기하여 상세히 다룰 수 있는 구조를 제공합니다. do 블럭 내에서 에러가 발생하면 catch 블럭에서 해당 에러를 잡아내며, 에러의 종류에 따라 다양한 대응 방식을 지정할 수 있습니다.
4. 에러를 전파하는 방법은 무엇인가요?
에러 전파는 하위 함수에서 발생한 에러를 상위 함수로 전달하여, 상위 함수에서 에러를 처리하도록 하는 방법입니다. Swift에서는 throws 키워드를 통해 에러를 발생시키고 전파할 수 있으며, 호출한 함수 쪽에서 이를 전달 받아 적절히 처리하게 됩니다.
Swift에서 에러를 전파하는 방법
에러 전파는 throws와 try 키워드를 사용해 구현됩니다.
에러 전파는 하위 함수에서 발생한 에러를 상위 함수에서 처리하도록 전달함으로써, 코드의 흐름을 일관성 있게 관리하고 에러를 한 곳에서 효과적으로 처리할 수 있도록 만듭니다.