Rust 코드에는 많고도 많은 오류 표현 방법이 있지만, 그 중에도 standard library에는
오류를 설명하기 위한 범용 trait인 std::error::Error
가 있습니다.
smart pointer인 Box
를 사용하면 Box<dyn std::error::Error>
를 오류 리턴 시 공통된 자료형으로 사용할 수 있는데,
이는 오류를 heap에 전파하고 특정한 자료형을 몰라도 고수준에서 상호작용할 수 있도록 해주기 때문입니다.
Tour of Rust 초반에 main
은 오류를 리턴할 수 있다고 배웠습니다.
이제 우리는 오류의 데이터 구조가 Rust의 일반적인 Error
trait을 구현하는 한,
프로그램에서 발생할 수 있는 거의 모든 종류의 오류를 설명할 수 있는 자료형을 리턴할 수 있습니다.
fn main() -> Result<(), Box<dyn std::error:Error>>