C/C++

Помогите с задачей в C++ пожалуйста. Какое условие правильно написать в Z чтобы выводилось сообщение "error!" ?

#include
#include
#include
#include
#include
using namespace std;
main ()
{
float x,z;
cout<<("vvedite chislo x :");
cin>>x;
z= () ? (log(pow(x,2))/(1+pow(log(x),2))+x/(log(x)-1)): throw domain_error("error!");
cout<
У вас слишком радужные представления об исключительных ситуациях! Одной ошибкой дело не обойдётся...

#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
#include <cstdlib>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
while (true) {
cout << "Input X: ";
string line;
cin >> line;
double x;
try {
x = stod(line);
} catch (invalid_argument& e) {
cerr << "Exception: " << e.what() << '\n';
continue;
} catch (out_of_range& e) {
cerr << "Exception: " << e.what() << '\n';
continue;
} catch (...) {
cerr << "Exception: unknown exception on data entry\n";
continue;
}
try {
if (x < 0) throw invalid_argument("logarithm argument is less than zero");
if (x == 0) throw invalid_argument("logarithm argument is zero");
auto lx = log(x);
auto arg = lx - 1;
if (arg == 0) throw invalid_argument("division by zero attempt");
auto z = log(pow(x, 2)) / (1 + pow(lx, 2)) + x / arg;
if (isinf(z)) throw out_of_range("the value is infinite");
cout << "z = " << fixed << setprecision(15) << z << '\n';
break;
} catch (invalid_argument& e) {
cerr << "Exception: " << e.what() << '\n';
} catch (out_of_range& e) {
cerr << "Exception: " << e.what() << '\n';
} catch (...) {
cerr << "Exception: unknown calculation exception\n";
}
}
system("pause");
}

Любое из перечисленных ниже значений X вызовет исключение:
-1
0
2.718281828459045
1e308
9e1024
OxFF
Заманбек Жаксалыков
Заманбек Жаксалыков
52 121
Лучший ответ
false
Олег Колганов он тогда всегда error выбивает