Olá Jade,
A classe Throwable é a superclasse de todas as exceções em Java. Ela é usada para representar qualquer tipo de exceção que possa ocorrer durante a execução de um programa. Cada vez que uma exceção é lançada, uma nova instância da classe Throwable é criada para representar essa exceção específica.
Embora possa parecer mais ágil pegar diretamente as informações da exceção, instanciar uma nova classe Throwable é importante porque permite que você tenha informações mais detalhadas sobre a exceção que ocorreu. Por exemplo, a classe Throwable possui métodos como getMessage() e printStackTrace() que permitem que você obtenha informações sobre a exceção, como sua mensagem de erro e a pilha de chamadas que levou à exceção.
Quanto à sua pergunta sobre a classe Exception, ela gera uma exceção checked porque é uma subclasse direta de Throwable. Isso significa que qualquer exceção que é uma instância de Exception (ou uma subclasse de Exception) deve ser tratada explicitamente em seu código ou declarada na cláusula throws de um método.
Espero ter ajudado e bons estudos!