</>
Plan du cours — 26/66

panic! vs Result

Intermédiaire
  • panic! : bug du programmeur, état irrécupérable (index hors limites, invariant violé).
  • Result : échec attendu (fichier absent, réseau coupé, saisie invalide).

Cas pratique : parser un fichier de nombres, un par ligne, en s'arrêtant à la première erreur.

fn somme_fichier(chemin: &str) -> Result<i32, AppError> {
    let contenu = std::fs::read_to_string(chemin)?;
    contenu
        .lines()
        .map(|l| l.parse::<i32>().map_err(AppError::from))
        .sum()          // Result<i32, _> : s'arrête à la première Err
}