Não entendi muito bem a diferença entre os 2. Qual seria a definição de cada um?
Não entendi muito bem a diferença entre os 2. Qual seria a definição de cada um?
Quando você lança um throw ele apenas repassa a mesma exceção para frente, com isso outro trecho de código poderá capturar e saber as informações pelo stacktrace, não perdendo informações sobre a exceção original.
Já quando é lançado um throw ex, você para a exceção por ali e lança uma nova exceção a partir dele, fazendo com que informações sobre a exceção original sejam perdidas.
Conclusão - Throw mantém a hierarquia de exceções em um possível stacktrace, já o throw ex retorna as exceções partindo do ponto onde ele foi lançado, perdendo assim informações.
Ao meu ver você deve dar preferência para o throw
artigos usado como base: https://www.macoratti.net/18/01/c_excep1.htm
Muito obrigado!! Entendi perfeitamente agora.