Error Handling (에러 처리)
Swift Error Handling은 프로그램 실행 도중 발생할 수 있는 에러나 예외 상황을 처리하는 방법입니다.
에러 처리를 위해 Swift에서는 try-catch 문법을 사용합니다.
에러 유형
Swift에서는 다음과 같은 두 가지 종류의 에러를 다룹니다.
- 표현식(expression)을 평가할 때 발생하는 에러: 예를 들어, 배열의 범위를 벗어난 인덱스로 접근하는 등의 상황에서 발생할 수 있습니다. 이러한 에러는 런타임 에러(runtime error)라고도 합니다.
- 프로그램 구현 단계에서 발생하는 에러: 예를 들어, 함수에서 예상한 인자를 받지 못했을 때 발생하는 에러 등이 있습니다. 이러한 에러는 컴파일 타임 에러(compile-time error) 또는 논리적 에러(logical error)라고도 합니다.
에러 처리
Swift에서는 try, catch, throw 키워드를 사용하여 에러 처리를 구현합니다.
try
try 키워드는 에러가 발생할 가능성이 있는 코드를 감싸는 데 사용합니다. try를 사용하면 해당 코드에서 발생한 에러는 호출자에게 전달됩니다.
do {
let result = try someFunctionThatCanThrowAnError()
// 에러가 발생하지 않은 경우 처리할 코드
} catch {
// 에러가 발생한 경우 처리할 코드
}
위 코드에서 try 키워드를 사용하여 someFunctionThatCanThrowAnError 함수를 호출합니다. 이 함수에서 에러가 발생하면 catch 블록으로 제어 흐름이 이동합니다.
catch
catch 키워드는 try 블록에서 발생한 에러를 처리하는 데 사용합니다. catch 키워드 다음에는 에러를 처리하는 코드가 위치합니다. 에러를 처리하는 방법은 다양합니다.
enum CustomError: Error {
case error1
case error2
}
do {
let result = try someFunctionThatCanThrowAnError()
// 에러가 발생하지 않은 경우 처리할 코드
} catch CustomError.error1 {
// 에러1 처리 코드
} catch CustomError.error2 {
// 에러2 처리 코드
} catch {
// 그 외 모든 에러를 처리하는 코드
}
위 코드에서 catch 블록은 에러 유형별로 나누어 처리합니다. 이 때, CustomError라는 에러 타입을 정의하고, catch 블록에서 해당 에러를 처리하는 코드를 작성합니다. 마지막 catch 블록은 그 외 모든 에러를 처리하는 코드입니다.
throw
throw 키워드는 에러를 발생시키는 데 사용합니다. throw 키워드 뒤에는 에러를 나타내는 값을 지정해야 합니다. 일반적으로 Swift에서는 Error 프로토콜을 채택한 열거형(enum)으로 에러를 표현합니다.
enum CustomError: Error {
case error1
case error2
}
func someFunctionThatCanThrowAnError() throws {
// 에러가 발생할 수 있는 동작
if /* 에러 조건 */ {
throw CustomError.error1
}
// ...
}
위 코드에서 someFunctionThatCanThrowAnError() 함수는 throws 키워드를 사용하여 에러를 발생시킬 수 있음을 나타냅니다. if문에서 특정 조건을 체크하여 에러 조건이 충족되면 throw 키워드를 사용하여 CustomError.error1을 던집니다.
에러 처리는 try-catch 문법을 사용하여 이 함수를 호출하는 코드에서 처리할 수 있습니다.
do {
try someFunctionThatCanThrowAnError()
// 에러가 발생하지 않은 경우 처리할 코드
} catch CustomError.error1 {
// 에러1 처리 코드
} catch {
// 그 외 모든 에러를 처리하는 코드
}
try 키워드를 사용하여 someFunctionThatCanThrowAnError() 함수를 호출하고, 발생한 에러를 catch 블록에서 처리합니다. 이렇게 함으로써 에러가 발생하는 상황에 대비한 코드를 작성할 수 있습니다.
Swift Error Handling을 사용하여 예상 가능한 에러를 처리하고, 코드의 안정성을 향상시킬 수 있습니다.
'Programming Language > Swift' 카테고리의 다른 글
[Swift] Swift 간단 정리 4, Type Casting (0) | 2023.04.29 |
---|---|
[Swift] Swift 간단 정리 3 ,Optional (0) | 2023.04.29 |
[Swift] Swift 간단 정리 2, 흐름제어문 (0) | 2023.04.28 |
[Swift] Swift 간단 정리 1 (0) | 2023.04.28 |