오류 핸들링은 Rust의 핵심 개념 중 하나로, 다양한 오류 상황을 효과적으로 처리할 수 있는 기능을 제공합니다.
이 튜토리얼에서는 Rust에서의 오류 핸들링 기본 사항을 다룰 것입니다.
이를 위해 Result 열거형(enum)과 match 문을 사용하여 오류를 처리하는 방법을 알아봅시다.
Result 열거형
Rust에서는 결과를 나타내기 위해 Result 열거형을 사용합니다.
이는 다음과 같은 두 가지 값 중 하나를 갖습니다.
- Ok(T): 연산이 성공적으로 수행되었을 때 반환되는 값 T.
- Err(E): 연산이 실패했을 때 반환되는 오류 값 E.
예를 들어, 정수를 문자열로 변환하는 간단한 함수를 작성해 봅시다.
이 함수는 문자열을 입력으로 받아 정수로 변환하려고 시도하고, 변환에 성공하면 Ok 값을 반환합니다.
만약 변환에 실패하면, Err 값을 반환합니다.
fn parse_integer(input: &str) -> Result<i32, String> {
match input.parse::<i32>() {
Ok(value) => Ok(value),
Err(_) => Err(format!("'{}' is not a valid integer.", input)),
}
}
match 문을 사용한 오류 처리
오류 처리를 위해 match 문을 사용하여 Result 열거형에 따른 처리를 구현할 수 있습니다.
예를 들어, 다음 코드는 parse_integer 함수의 결과를 처리합니다.
fn main() {
let input = "42";
let parsed = parse_integer(input);
match parsed {
Ok(value) => println!("The integer value is: {}", value),
Err(error) => println!("Error: {}", error),
}
}
이 코드는 parse_integer 함수를 호출하여 결과를 가져옵니다.
그런 다음 match 문을 사용하여 결과가 Ok인지 Err인지 확인하고, 각 경우에 따라 적절한 동작을 수행합니다.
이 튜토리얼에서는 Rust의 오류 핸들링의 기본 사항만 다루었습니다.
실제로는 ?
연산자를 사용하여 오류를 전파하거나, 사용자 지정 오류 유형을 정의하는 등 더 많은 기능을 활용할 수 있습니다.
이러한 고급 기능을 배우는 것도 도움이 될 것입니다.