Modernes C++ programmieren

Okt 23, 2024

lst-1041-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/ndc4f8T3P 
#include <future> // async
#include <iostream>

int berechneHoehe(int count, int maxCount, int scale) {
  if(maxCount == 0)
      throw std::logic_error("maxCount ist 0");
  return (count * scale) / maxCount;
}

int main() {
  auto fut = std::async(std::launch::async, berechneHoehe, 0, 0, 200); //                 (ERR)  wirft
  try {
    std::cout << fut.get() << '\n';               // löst Exception aus
  } catch(std::exception &ex) {
    std::cout << "Fehler: " << ex.what() << '\n'; // Ausgabe: Fehler: maxCount ist 0
  }
}