Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Se eu escrevesse ValueError?

Eu usei a primeira exception que eu lembrava com mais facilidade, que foi ValueError.

    def calcular_bonus(self):
        valor = self._salario * 0.1
        if valor > 1000:
            raise ValueError('Valor maior que R$10.000,00')
        return valor

O código abaixo passou no Pytest, acredito que Exception é uma super-exceção que inclui muitas outras incluindo ValueError:

    def test_quando_calcular_bonus_para_120000_deve_retornar_exception(self):
        with pytest.raises(Exception):
            entrada = 120000
            # Não é precisa a variável esperado, por a exceção ser esperada.

            funcionario_teste = Funcionario("Elle", '11/11/2000', entrada)
            resultado = funcionario_teste.calcular_bonus()

            assert resultado

Todavia, é mais recomendável que eu use Exception em vez de ValueError? Estou usando essa exceção fora do esperado?

1 resposta
solução!

Oi Akhenaton, como você está?

Exatamente isso, a Exception é a mãe de todas as outras exceções do Python, ou seja, o ValueError herda por baixo dos panos características da Exception, assim como TypeError, AttributeError, SyntaxError, dentre outras.

Segundo a documentação do Python, a exceção ValueError, deve ser usada quando uma operação ou função recebe um argumento que tem o tipo certo, mas um valor inadequado. No caso do seu código, isso se cumpre bem, uma vez que está sendo levantado a exceção quando é passado um valor diferente do esperado.

Já o Exception é utilizado de forma geral, quando não temos o conhecimento da exceção específica que está sendo retornada. Caso você utilizasse ValueError no lugar de Exception, também funcionaria bem.

with pytest.raises(ValueError)

Se você quiser aprender ainda mais sobre tratamentos de exceções no Python, deixo abaixo um curso aqui da Alura que trata sobre isso. E também, a documentação do Python que aborda os tipos de erros existentes e até mesmo uma árvore da hierarquia das Exceções:

Lembre-se que pode contar sempre com o fórum, seja para tirar suas dúvidas ou para compartilhar o seu desenvolvimento.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!