cpp / beginner
Snippet
Ausnahmebehandlung mit try und catch
Ausnahmen behandeln Laufzeitfehler elegant. Das throw-Schlüsselwort wirft eine Ausnahme und catch-Blöcke behandeln sie. Die Verwendung von Ausnahmen anstelle von Fehlercodes macht den Code sauberer und Fehler schwerer zu ignorieren.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdexcept>int divide(int a, int b) {if (b == 0) {throw std::invalid_argument("Division by zero!");}return a / b;}try {int result = divide(10, 0);std::cout << result;} catch (const std::invalid_argument& e) {std::cout << "Error: " << e.what();}
Erklärung
1
throw std::invalid_argument("...")
Wirft eine Ausnahme mit einer Nachricht, wenn Division durch Null auftritt
2
catch (const std::invalid_argument& e)
Fängt den spezifischen Ausnahmetyp per const-Referenz ab
3
e.what()
Member-Funktion, die die Fehlernachricht der Ausnahme zurückgibt