[[パターンマッチ (Rust)|パターンマッチ]]でステータスによって処理を分岐する。 ```rust use anyhow::{bail, Result}; let r = reqwest::Client::new() .get(format!("{}{}", BASE_URL, path)) .query(query) .send() .await?; match r.status() { s if s.is_client_error() => bail!( "Client error, status: {}, message: {}", r.status(), r.text().await.unwrap_or_else(|_| "unexpected error".to_string()) ), s if s.is_server_error() => bail!( "Server error, status: {}, message: {}", r.status(), r.text().await.unwrap_or_else(|_| "unexpected error".to_string()) ), _ => { Ok(r.json::<R>().await?) } } ``` ## 参考 https://docs.rs/reqwest/0.6.2/reqwest/enum.StatusCode.html#method.is_client_error