Rust 예외 및 에러 처리
일반적인 프로그래밍 언어에서는 에러 처리를 위한 예외 처리가 기본이다. (원칙적으로 예외 처리는 내 소스코드 범위를 벗어난 어쩔 수 없는 에러(예, DB연결)가 발생할 때 처리하는 것을 말한다. 나머지는 assert 처리하여 버그를 수정해야 한다. )
그렇지만 러스트(rust)는 예외 기능이 없다. 대신, 복구 가능한 에러를 위한 Result<T, E> 값과 복구 불가능한 에러가 발생했을 때 실행을 멈추는 panic! 매크로를 가지고 있다.1
또한 러스트는 다른 언어들이 가지는 Null이라는 기능이 없다. 러스트는 Null을 사용하지 않고, 존재하거나 존재하지 않음을 나타내는 개념을 나타내는 Option<T>을 이용한다.2
Result 및 Option 정의
1
2
3
4
enum Result<T, E> {
Ok(T),
Err(E)
}
1
2
3
4
enum Option<T> {
None,
Some(T)
}
여기에서 사용하는 대부분의 예제는 mithradates의 Easy Rust Korean를 참고하였다.