Pergunta

Eu entendo por que um HttpServlet jogaria ServletException, mas por IOException? Qual foi o raciocínio por trás disso?

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top