Por que HttpServlet lançar uma IOException?
Pergunta
Eu entendo por que um HttpServlet jogaria ServletException, mas por IOException? Qual foi o raciocínio por trás disso?
Solução
De docs:
IOException - se um erro de entrada ou saída é detectado quando as alças de servlet o pedido GET
Isso pode acontecer quando você imprimir a saída servlet:
.response.getWriter () print () - este método lança IOException
O soquete pode ser fechada antes que os acabamentos de resposta para imprimir a saída.
Outras dicas
eu sugiro que um IOException
indica um problema com o processamento de entrada / saída, por exemplo problemas de leitura a partir da entrada do pedido, ou escrever a resposta, enquanto que um ServletException
tem mais a ver com problemas específicos de servlet, como erros em relação servlet provisionamento / inicialização e processamento de pedidos.
Se as gravações servlet para um fluxo de saída (ou seja, da página) através de interfaces I / O, qualquer erro de E / S será relatado como um IOException
.
Talvez a API não deve ser o uso de interfaces I / O diretamente. Não é incomum para WebApps usando RMI para permitir que o RMIException
ser queda através da interface servlet (que é uma subclasse de IOException
por algum motivo).