# Tag 2 - Result Typ und Fehlerbehandlung Heute habe ich einmal mit dem Thema Fehlerbrhandlung rumexperimentiert. Einer von mehreren Wegen in Rust ist der **Result** Typ. Dabei handelt es sich um ein **enum**, dass entweder einen Wert für den Erfolgsfall oder einen Fehler enthält. ```rust use std::string::String; #[derive(Debug)] struct Person { name: String, age: i32, } impl Person { fn hello(&self) -> Result{ if self.name != "" { let ret = format!("{} is {} years old.", self.name, self.age); Ok(ret) } else { Err("No name given") } } } fn main() { let bob = Person { name: String::from("Bob"), age: 32, }; let res = bob.hello().unwrap(); // will consume the Ok value or panic in case of error println!("{:?}", res); let mary = Person { name: String::from(""), age: 30, }; let res1 = mary.hello().unwrap(); // will consume the Ok value or panic in case of error println!("{:?}", res1); } ``` Die Rückgabe der Methode *hello* wird als **Result **definiert. Innerhalb der *if* Anweisung geben wir im Erfolgsfall durch **Ok(ret)** den String zurück. Andernfalls über **Err("...")** eine Fehlermeldung. Durch das Anhängen der Methode **unwrap()** wird der zurückgelieferte *Result* Typ entpackt. Im Falle eines Fehler führt **unwrap()** zu einer Panik. Die Ausgabe sieht dann so aus: ```rust Standard Error: Compiling playground v0.0.1 (/playground) Finished dev [unoptimized + debuginfo] target(s) in 1.05s Running `target/debug/playground` thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "No name given"', src/main.rs:33:29 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace Standard Output: "Bob is 32 years old." ``` Das ist denke ich erstmal nur der Einstieg. Die Methode **unwrap()** zu verwenden ist zwar schnell und bequem, aber man will ja in den wenigsten Fällen das Programm mit einer Panik enden lassen, dazu dann nochmal mehr... Dieser Beitrag ist **Teil 7** von 100 Days To Offload. Wenn Du mitmachen willst, besuche https://100daystooffload.com Dies ist Tag 1 / 100 von #100DaysOfCode