Zupełnie nie rozumiem, z czym masz problem.
Posiadasz już gotowy kod do sprawdzenia czy napis jest liczbą, użyj go w swojej funkcji.
void getliczba() {
bool b = false;
if (! s.empty() && std::all_of(s.begin(), s.end(), [](char c){return std::isdigit(c);})) {
b = true;
}
if (!b) //rzuć wyjątek
// reszta kodu
}
Możesz to zrobić nawet prościej (bez dodatkowej zmiennej).
void getliczba() {
if (s.empty() || ! std::all_of(s.begin(), s.end(), [](char c){return std::isdigit(c);})) {
// rzuć wyjątek
}
// reszta kodu
}