Em Java, existe alguma maneira de obter (capturar) tudo em exceptions
vez de capturar a exceção individualmente?
java
exception
file
exception-handling
Johanna
fonte
fonte
Respostas:
Se desejar, você pode adicionar cláusulas throws aos seus métodos. Então você não precisa pegar os métodos verificados imediatamente. Dessa forma, você pode capturar o
exceptions
último (talvez ao mesmo tempo que outroexceptions
).O código se parece com:
Então, mais tarde, você pode lidar com os
exceptions
se não quiser lidar com eles desse método.Para capturar todas as exceções que algum bloco de código pode lançar, você pode fazer: (Isso também pegará
Exceptions
você mesmo)O motivo pelo qual funciona é porque
Exception
é a classe base para todas as exceções. Portanto, qualquer exceção que possa ser lançada é umException
('E' maiúsculo).Se você quiser lidar com suas próprias exceções primeiro, simplesmente adicione um
catch
bloco antes da exceção genérica.fonte
Embora eu concorde que não é um bom estilo capturar uma exceção bruta, existem maneiras de lidar com exceções que fornecem um registro superior e a capacidade de lidar com o inesperado. Como você está em um estado excepcional, provavelmente está mais interessado em obter boas informações do que no tempo de resposta, portanto, a ocorrência de desempenho não deve ser um grande golpe.
No entanto, isso não leva em consideração o fato de que o IO também pode lançar erros. Erros não são exceções. Os erros estão em uma hierarquia de herança diferente das Exceções, embora ambos compartilhem a classe base Throwable. Uma vez que IO pode lançar erros, você pode querer ir tão longe a ponto de pegar lançável
fonte
Capture a exceção de base 'Exceção'
fonte
É uma má prática capturar Exception - é muito ampla, e você pode perder algo como um NullPointerException em seu próprio código.
Para a maioria das operações de arquivo, IOException é a exceção raiz. Melhor pegar isso, em vez disso.
fonte
Sim existe.
fonte
Você pode capturar várias exceções em um único bloco catch.
fonte
Você quer dizer pegar um
Exception
de qualquer tipo que seja lançado, ao invés de apenas exceções específicas?Se então:
fonte