Написал код, но сомневаюсь в его написание. Тема: Обработка исключительных ситуаций
Задание: Написать программу согласно варианту, демонстрацию обработки исключительной ситуации, генерирующей ошибку пользовательского типа (т.е. написать свой класс "исключение"). Треугольник задается координатами вершин на плоскости: A(x1, y1), B(x2, y2), C(x3, y3). Определить, является ли этот треугольник вырожденным. Исключение: точки не лежат на одной прямой.
#include <iostream>
using namespace std;
class CustomException : public exception {
public:
const char* what() const throw() {
return "Треугольник вырожденный!";
}
};
class Triangle {
private:
int x1, y1, x2, y2, x3, y3;
public:
void inputSides() {
cout << "Введите координаты точки A (x1 y1): ";
cin >> x1 >> y1;
cout << "Введите координаты точки B (x2 y2): ";
cin >> x2 >> y2;
cout << "Введите координаты точки C (x3 y3): ";
cin >> x3 >> y3;
}
void checkDegeneracy() {
if ((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) == 0) {
throw CustomException();
}
else {
cout << "Треугольник не вырожден. Он образует правильный треугольник." << endl;
}
}
};
int main() {
setlocale(0, "");
Triangle triangle;
triangle.inputSides();
try {
triangle.checkDegeneracy();
}
catch (CustomException& e) {
cerr << e.what() << endl;
}
}