powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно ли проверять входные параметры на null?
12 сообщений из 12, страница 1 из 1
Нужно ли проверять входные параметры на null?
    #38156011
tercat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно ли проверять входные параметры метода на null?

ведь если написать if(param==null) return; мы будем дольше отлавливать баги, лучше пускай сработает эксепшн, поэтому на null лучше не проверять. я прав или нет?
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156037
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156051
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercat,
Диагностика друг программиста. Чем больше ты будешь получать осмысленных сообщений при ошибках, тем проще будет отыскать эти ошибки. Поэтому, не полагайся на порождаемые фреймворком эксепшины, проверяй сам условия и генерируй свои эксепшины.
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156108
Фотография Остап Ибрагимович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varcomtercat,
Диагностика друг программиста. Чем больше ты будешь получать осмысленных сообщений при ошибках, тем проще будет отыскать эти ошибки. Поэтому, не полагайся на порождаемые фреймворком эксепшины, проверяй сам условия и генерируй свои эксепшины.

+1
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156137
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tercatНужно ли проверять входные параметры метода на null?

ведь если написать if(param==null) return; мы будем дольше отлавливать баги, лучше пускай сработает эксепшн, поэтому на null лучше не проверять. я прав или нет?Давайте различать три возможных ситуации.
1) Аргумент метода может быть null и это нормально (в С# это странная ситуация, обычно вместо этого используется "нулевой объект" - а вот в Objective-C такое вполне бывает). Отдельная проверка не нужна, падение при аргументе равном null - ошибка метода, а не вызвавшей стороны.
2) Аргумент метода может быть null, но это ненормально (т.е. мы по какой-то причине не в состоянии отвечать за то, кто и с какими аргументами вызывает метод и не можем ставить вызывающей стороне условия). Нужна отдельная проверка на осмысленность переданных данных, включающая, но не обязательно ограничивающаяся проверкой на null. Падение при аргументе равном null - ошибка метода, а не вызвавшей стороны.
3) Предусловия метода оговаривают, что аргумент не может быть null. Проверка на null должна проводиться в форме утверждения, вызывающего немедленное падение с указанием причины при отладке; в рабочей версии проверка может остаться и записывать о проблеме в лог, пытаясь как-то восстановить выполнение программы, либо остаться и аварийно завершать программу, по возможности сохраняя данные пользователя, либо (если соответствующий фрагмент кода критичен по скорости выполнения и хорошо протестирован) быть изъята из кода.
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156294
tercat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть так писать оптимально?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
void f(SomeType s)
{
  if (s == null)
  {
    throw new ArgumentNullException("s cannot be null.");
  }

  // Use s
}
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38156308
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
void f(SomeType s)
{
  Contract.Requires(s != null, "s cannot be null.");

  // Use s
}


Контракты для кода
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38157151
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

я так понял только Net 4.5?
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38157255
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanskyANA,

я так понял только Net 4.5?Нет, ещё и .NET Framework 4.
P.S.: в MSDN вроде на каждой странице есть ссылка "Другие версии".
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38157342
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

у меня ссылка почему-то не работала. Вообщем занимательный момент.
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38158041
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
skyANA
Код: c#
1.
2.
3.
4.
5.
6.
void f(SomeType s)
{
  Contract.Requires(s != null, "s cannot be null.");

  // Use s
}



Контракты для кода

Ну и чем это помогает обработать ошибку?
...
Рейтинг: 0 / 0
Нужно ли проверять входные параметры на null?
    #38158390
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2skyANA
Код: c#
1.
2.
3.
4.
5.
6.
void f(SomeType s)
{
  Contract.Requires(s != null, "s cannot be null.");

  // Use s
}



Контракты для кода

Ну и чем это помогает обработать ошибку?Не понял вопроса. Статью по ссылке читали?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно ли проверять входные параметры на null?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]