Olá, Victor, como vai?
Seu código atende bem à proposta do exercício. A lógica condicional está correta para verificar se o horário informado está dentro do intervalo permitido entre 8 e 18 horas. A estrutura da função também está organizada, com tratamento de erro para entradas que não sejam números e uma nova chamada da função quando ocorre uma exceção, o que mantém o programa em execução até que um valor válido seja digitado.
Obrigado por compartilhar sua resolução. Caso queira continuar aprimorando, você pode explorar mais validações de entrada e pequenas melhorias no tratamento de exceções.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!