Fehlerbehandlung
Fehlerbehandlung CLI-Flags
Abschnitt betitelt „Fehlerbehandlung CLI-Flags“Ein Rust-Programmierer entwirft eine Bibliothek zum Schreiben von Kommandozeilen-Schnittstellen (CLI). Als Teil dieser Bibliothek implementiert er eine Funktion, um vom Benutzer bereitgestellte Kommandozeilen-Flags zu parsen. Welche Implementierung wäre für diesen Anwendungsbereich am besten geeignet?
fn parse_flag_v1(flag: &str) -> Result<String, String> { match flag.strip_prefix("--") { Some(no_dash) => Ok(no_dash.to_string()), None => Err(format!("Invalid flag {flag}")) }}
fn parse_flag_v2(flag: &str) -> String { match flag.strip_prefix("--") { Some(no_dash) => no_dash.to_string(), None => panic!("Invalid flag {flag}") }}Hier würde der Programmierer wahrscheinlich einen wiederherstellbaren Fehler (den Result-Typ) verwenden wollen. Wenn ein CLI-Benutzer ein falsch formatiertes Flag übergibt, möchte die CLI-Bibliothek möglicherweise zusätzliche Hilfe anbieten, wie z. B. die Anzeige der möglichen Flags. Ein panic! würde die Anwendung dazu zwingen, nur die panic-Nachricht anzuzeigen, und wäre wahrscheinlich eine schlechtere Benutzererfahrung.