Я вот думаю, не стоит ли бросить исключение, если метод IsCorrect вернет false?

Это зависит от того, хотим ли мы допустить существование экземпляров классов, которые хранят "некорректные" треугольники.