더북(TheBook)

기본값이 0인 변경 가능한 변수 start를 추가한다. if 블록에서는 여전히 매개변수의 HashMap에서 start 항목을 파싱하지만, 이번에는 Result 객체에서 .expect 메서드를 호출한다. 테스트를 위해 숫자를 출력했다.

start 항목을 숫자로 파싱할 수 없으면 애플리케이션은 비정상적으로 종료된다.3

Finished dev [unoptimized + debuginfo] target(s) in 7.77s
    Running target/debug/practical-rust-book
thread 'tokio-runtime-worker' panicked at
    'Could not parse start:
        ParseIntError { kind: InvalidDigit }', src/main.rs:83:34
note: run with RUST_BACKTRACE=1 environment variable
    to display a backtrace

요청에 매개변수 두 개만 추가해도 에러가 많이 발생할 수 있다는 것을 알았다. 하나만 존재하거나 둘 중 하나를 파싱할 수 없어도 에러가 난다. 다양한 에러에 대응하도록 해당 로직을 전용 함수로 옮기고, 전용 에러 타입을 추가하고 처리해 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.