fn speed(start: u32, end: u32, time_elapsed: u32) -> u32 {
// TODO: `time_elapsed`가 0일 경우 사용자 지정 메시지와 함께 panic을 일으키세요.
(end - start) / time_elapsed
}
0으로 나누기(divide by zero) 오류는 흔히 발생하는 프로그래밍 오류로, 적절히 처리할 필요가 있다.
러스트에서는 오류를 처리하는 한 방법으로 panic을 제공한다.
panic은 말 그대로 프로그램이 패닉에 빠진 상황을 의미한다. 즉, 복구 불가능한 오류(unrecoverable error)가 발생한 경우 panic이 발생한다.
개발자 역시 panic이 발생하도록 코드를 작성할 수 있는데, panic! 매크로를 사용한다.
정답:
fn speed(start: u32, end: u32, time_elapsed: u32) -> u32 {
// TODO: Panic with a custom message if `time_elapsed` is 0
//메시지의 내용은 테스트 모듈에 지정된 문구를 그대로 사용해야 함
if time_elapsed == 0 { panic!("The journey took no time at all. That's impossible!"); }
(end - start) / time_elapsed
}