問題一覧に戻る
中級エラー処理
問題53: panic!マクロ
panic!は回復不可能なエラーでプログラムを停止させます。予期しない状態や続行不可能な場合に使用します。assert!は条件が偽の場合にpanic!し、debug_assert!はデバッグビルドでのみ有効です。エラーメッセージを指定してデバッグを容易にします。通常はResultを使い、panic!は最終手段です。
fn validate_age(age: i32) {
if age < 0 {
// エラーメッセージ付きパニック
!("Age cannot be negative: {}", age);
}
println!("Valid age: {}", age);
}
fn main() {
validate_age(25);
let v = vec![1, 2, 3];
// 条件付きアサート
!(v.len() >= 3, "Vector too small");
// デバッグアサート
!(2 + 2 == 4);
// This will panic
// validate_age(-5);
}