Zapis do pliku przy wystąpieniu wyjątku.

0

Cześć,
Mam pewien problem z obsługą wyjątków.
W swoim programie mam klasę, która zbiera informacje o wystąpieniu błędów i
zapisuje je do pliku tekstowego w formie logów.
Niestety nie wiem jak poprawnie obsłużyć wyjątki w tym programie.
Przyjmijmy prosty przykład:

#include <iostream>
#include <fstream>


class A
{
public:
  void report(const char* e){
    std::ofstream file("txt");
    file << e;
  }
};


int main()
{
  try
  {
    throw "exception\n";
  }
  catch(const char* e)
  {
    A a;
    a.report(e);
    std::cerr << e << '\n';
  }
  
}

Powyższy kawałek kodu działa, natomiast mam spore wątpliwości co do bezpieczeństwa tego rozwiązania.
Problemem nie są tu wyjątki które sam rzucam (mogę najpierw dokonać wpisu, a następnie wywołać throw),
natomiast nieprzewidziane nie zostaną objęte.

3

Pisanie loger-a nie jest tak proste jak się wydaje.
Nie prościej użyć jakiejś gotowej biblioteki, która już zadba o wszystko jak należy?
A co do obsługi wyjątków ten CppCon jest dobry.

1 użytkowników online, w tym zalogowanych: 0, gości: 1