As funções devem sempre retornar um status de sucesso / falha? [duplicado]

5

Qual é o raciocínio por trás de todas as funções (e métodos!) retornar um tipo uniforme, geralmente int, como um status?

Para mim, parece estranho; especialmente quando você está chamando um getter e ele retorna um status (que geralmente é o mesmo sempre) e define um dos parâmetros para o valor que você está obtendo.

    
por Plumenator 06.08.2011 / 11:38
fonte

2 respostas

3

Se não houver chance de falha, não há sentido em retornar um status. Isso faz sentido, se o código que usa a função realmente avaliar o código de status retornado e responder a ele com alguma mensagem de erro ou alguma maneira de corrigir um erro. Muitos códigos de status inúteis e programadores que o usam formarão o hábito de ignorá-los.

Embora dependendo da funcionalidade real, pode ser relevante manter essa opção para alterações que você pode querer fazer em uma versão futura de alguma biblioteca. (Mas então você deve saber o que está fazendo)

Pode-se questionar se a abordagem do código de status é uma boa ideia de qualquer maneira. Eu prefiro exceções para tratamento de erros, uma vez que eles tornam o código mais legível.

Em alguns idiomas (e em muitos casos de uso), você precisa do valor de retorno para outras finalidades. Ou simplesmente retornar o resultado de uma função ou retornar algo como this , como acontece ao sobrecarregar determinados operadores em C ++. Então, tornar um princípio para retornar um status não vai funcionar de qualquer maneira.

    
por 06.08.2011 / 11:59
fonte
2

Eles geralmente escrevem esse tipo de interface por motivos de compatibilidade binária, em que você não pode simplesmente lançar uma exceção e precisa deixar espaço para aumentar o intervalo de erros.

    
por 06.08.2011 / 11:45
fonte