Qual é a diferença entre “throws Exception” e “throws IOException” [duplicate]
Qual é a diferença entre throws Exceptione throws IOException?
Qualquer um deles funciona. Então, qual é a principal diferença entre eles? E se um deles não existisse?
Respostas
Esta questão é realmente sobre os fundamentos do mecanismo de exceção Java, mas, estranhamente, não consegui encontrar uma duplicata exata no StackOverflow ...
Essas declarações informam ao compilador (e aos programadores) quais tipos de exceções podem ser lançados por um método.
throws Exception
significa que um método pode lançar qualquer Exception(uma Exceptioninstância diretamente ou qualquer subtipo de Exception, incluindo IOException).
throws IOException
informa que um método pode lançar um IOException, mas não, por exemplo SQLException,.
Normalmente, é uma boa prática declarar exceções específicas , por exemplo throws IOException, ParseException, em vez de apenas escrever throws Exception.