다양한 실행 법이 존재 한다.
0으로 나누는 예제로 오류를 발생 시켜 보자.
fn div(a: i32, b: i32) -> i32 {
a / b
}
fn main() {
let ret = div(1, 0);
println!("ret: {}", ret);
}
백트레이스 사용 실행(백트레이스란? 오류가 발생된 원인을 추적하는 기능)
(PowerShell) $env:RUST_BACKTRACE=1; cargo run
(WSL2 / macOS / Linux) RUST_BACKTRACE=1 cargo run
릴리즈 모드로 실행시 : 디버그 심벌은 제외
$env:RUST_BACKTRACE=1; cargo run --release
릴리즈 모드에서도 디버그 심벌을 탑재를 하고 싶으면
Cargo.toml 파일에서 다음과 같이 설정
[profile.release-with-debug]
inherits = "release"
debug = true
// 복구 불가능한 오류 발생
// panic! 매크로는 프로그램을 즉시 종료하고 설정된 메세지를 출력한다.
// panic! 매크로는 공식 가이드 페이지에서 명시하는 것을 권장한다.
fn div(a: i32, b: i32) -> i32 {
if b == 0 {
// panic! 는 복구 불가능한 오류를 일으키려고 할 때 쓰인다.
panic!("0으로 나눌 수 없습니다.")
}
a / b
}
fn main() {
let ret = div(1, 0);
println!("ret: {}", ret);
}
/*실행 결과
thread 'main' panicked at main.rs:5:9:
0으로 나눌 수 없습니다.
*/
댓글 없음:
댓글 쓰기