Должно ли быть выброшено исключение или метод должен просто возвращаться? - PullRequest
0 голосов
/ 09 июля 2020

Сейчас мне интересно, что «лучше всего» делать, если null передается следующему методу. Должен ли он молча возвращаться (а он не возвращается) или должен вместо этого генерировать исключение?

public void RaisePropertyChanged(string propertyName)
{
    if(propertyName is null)
    {
        return;
    }

    this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

}

Здесь говорится:

[I] Если предположения функции о ее входах нарушены, она должна генерировать исключение вместо обычного возврата

, и я считаю, что функция предполагает , что ей передается не- null вход, однако она все равно может выполняться (успешно?), Поскольку она просто ничего не делает, если передано null.

Создает ли исключение вместо того, чтобы возвращать «лучшее», что можно сделать здесь с точки зрения хорошего / чистого кода?

1 Ответ

3 голосов
/ 09 июля 2020

Если отсутствие имени свойства считается ошибкой разработки, метод должен выдать ArgumentNullException. В противном случае можно тихо вернуться.

Что бы вы ни делали, безопаснее было бы проверить на string.IsNullOrWhiteSpace(propertyName). Когда вы это сделаете, просто введите ArgumentException, если имя собственное не указано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...