Jak zakonczyc program gdy wynik bedzie rozny od przewidywanego?

0

Hej!
Opiszę krótko problem.
Mam sobie funkcje a która wylicza sobie coś tam, ale nie może tego zrobić, jeżeli zmienna x będzie wynosiła 0.
Jest sobie też druga funkcja y, która wcześniej sprawdza czy ta zmienna jest równa zeru czy też nie.
No i tutaj nasuwa się pytanie - Czy da się zakończyć działanie programu w momencie, gdy funkcja y zwróci wartość zmiennej x=0?
Wiem, że istnieje coś takiego jak 'break' ale to działa tylko na pętlach i 'switch()'.
Jeśli jest to pytanie zbyt głupie to przepraszam, ale wolałem się zapytać, aby wiedzieć na przyszłość.

1
#include <cstdlib>

exit(EXIT_FAILURE);
1

Możesz użyć assert lub exit, jednak jeśli jest to zdarzenie wyjątkowe możesz użyć (nomen omen) wyjątku.

Przykłady:

#include <cassert>
#include <cstdio>
#include <exception>

void whit_assert(int a) {
  assert(a != 0);

  puts("A nie jest zerem");
}

void with_exit(int a) {
  if (a == 0) exit(1);

  puts("A nie jest zerem");
}

class IsZeroException: public std::exception {
  virtual const char* what() const throw() {
    return "Niespodziewane zero";
  }
}

void with_exception(int a) throw(IsZeroException) {
  if (a == 0) throw IsZeroException{};

  puts("A nie jest zerem");
}

Każde z tych rozwiązań jednak ma swoje wady.

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