Eu tenho um pedaço de código que pode ser representado como:
public class ItemService {
public void DeleteItems(IEnumerable<Item> items)
{
// Save us from possible NullReferenceException below.
if(items == null)
return;
foreach(var item in items)
{
// For the purpose of this example, lets say I have to iterate over them.
// Go to database and delete them.
}
}
}
Agora, estou me perguntando se essa é a abordagem correta ou devo lançar uma exceção. Posso evitar a exceção, porque retornar seria o mesmo que iterar sobre uma coleção vazia, o que significa que nenhum código importante é executado de qualquer maneira, mas, por outro lado, possivelmente estou ocultando problemas em algum lugar do código, porque por que alguém iria querer chamar DeleteItems
com null
parâmetro? Isso pode indicar que há um problema em outro lugar no código.
Esse é um problema que geralmente tenho com métodos em serviços, porque a maioria deles faz alguma coisa e não retorna um resultado; portanto, se alguém passa informações inválidas, não há nada para o serviço fazer, então ele retorna.