cpp / beginner
Snippet
Ausnahmebehandlung mit try und catch
Ausnahmebehandlung verhindert Programmabstürze, wenn Fehler auftreten. Der try-Block enthält Code, der eine Ausnahme auslösen könnte, und catch-Blöcke behandeln spezifische Ausnahmetypen. Wenn eine Ausnahme ausgelöst wird, springt die Programmausführung zum passenden catch-Block. Dies ist sauberer als Rückgabewerte für jeden Funktionsaufruf zu überprüfen.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>#include <stdexcept>int divide(int a, int b) {if (b == 0) {throw std::runtime_error("Division by zero not allowed");}return a / b;}int main() {try {std::cout << divide(10, 2) << std::endl;std::cout << divide(5, 0) << std::endl;}catch (const std::runtime_error& e) {std::cout << "Error: " << e.what() << std::endl;}std::cout << "Program continues..." << std::endl;return 0;}
Erklärung
1
throw std::runtime_error("...")
Löst eine Ausnahme mit einer Fehlermeldung aus
2
catch (const std::runtime_error& e)
Fängt die Ausnahme ab und bindet sie an Referenz e
3
e.what()
Gibt die Fehlermeldungszeichenkette aus der Ausnahme zurück
4
Program continues...
Diese Zeile wird ausgeführt, weil die Ausnahme abgefangen wurde