Czy używanie „try-catch” do kontroli przepływu w .NET jest „złe”?

Właśnie znalazłem w projekcie:

try
{
    myLabel.Text = school.SchoolName;
}
catch
{
    myPanel.Visible = false;
}

Chcę porozmawiać z deweloperem niż napisać to, mówiąc, że ponoszę zerowy wyjątek (ponieważschool może teoretycznie być null, a niemyLabel) praktycznie zrobiłby komputersygnał dźwiękowy trzy razy i spać przez dwie sekundy. Zastanawiam się jednak, czy błędnie pamiętam zasadę na ten temat. Oczywiście nie jest to zamierzone użycie dla try / catch, ale czy jest to złe, ponieważ wymyka się intencji lub jest złe ze względu na wydajność? Czuję, że jest po prostu źle, ale chcę powiedzieć coś więcej niż „to jest naprawdę złe”.

questionAnswers(9)

yourAnswerToTheQuestion