capypad
0 Tage Serie
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
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