try  catch  throw


Ausnahmebehandlung ist ein wichtiger Teil der modernen C++-Programmierung. es soll komplizierte Strukturen bzw. Programmabstürze vermeiden.
Ein Beispiel:

#include <iostream>
#include <string>
#include <conio.h>

class Number_format
{
private:
  std::string what_;
public:
  Number_format() : what_("Typumwandlung misslungen") {}
  Number_format(std::string s) : what_(s) {}
  std::string getwhat(){ return what_; }
};

long string_to_long(std::string str)
{
  char pos = 0;
  if (str.empty()) throw Number_format();
  if (str[0] == '-') ++pos;
  if (str[pos] < 48 || str[pos] > 57) throw Number_format();
  return std::strtol(str.c_str(), NULL, 10);
}

int main()
{
  std::string s;

  try
  {
    std::cout << "Geben Sie eine Zahl ein: ";
    std::cin >> s;
    std::cout << string_to_long(s) << std::endl;
  }
  catch (Number_format &ex)
  {
    std::cerr << ex.getwhat() << std::endl;
  }
  getch();
}


Link: exceptions

Übersicht Keywords C++