Obsłużyć czy nie obsługiwać wyjątku?

0

Witam, pytanie czysto teoretyczne. Jakie rozwiązanie będzie lepsze:

  1. posiadam bazę danych z tabelą Lekarze { imie, nazwisko, email } , która nie ma nałożonego ograniczenia typu UNIQE dla pola unikalnego, w aplikacji natomiast zaimplementowałem funkcje sprawdzającą czy dany lekarz istnieje na podstawie adresu email.
  2. posiadam tabelą Lekarze z ograniczeniem UNIQE dla pola email, nie tworzę funkcji, natomiast obsługuję wyjątek w przypadku dodania rekordu z takim samym emailem.

Pozdrawiam.

1

Oba równocześnie,

  1. Unique na tabeli/wartościach, które nie mają wielu insertów/sekundę na pewno nie zaszkodzi,
  2. A warstwa dostępu do bazy w alplikacji nie powinna wstawiać dublowanych rekordów i czekać na wyjątek (rzucanie wyjątków jest kosztowne sprzętowo i mało eleganckie w kodzie).

Wiadomo nie zawsze wszystko da się obsłużyć bez try/catch/finally ale Exception Driven Development to nie jest dobra droga.

2

Ale dlaczego wyjątki??
Przecież jeżeli sprawdzasz czy podany email już istnieje to jest to normalny if... przykładowo:

var emailFound = userDatabase.users.first(x => x.email == podanyEmail);
if(emailFound == null) // albo if(string.IsNullOrEmpty(emailFound))
{
//zwróć formularza z informacją o podanie innego adresu
}

Żaden wyjątek tylko standardowa operacja.

0

Dziękuję wam za
pomoc ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1