Domanda

Capisco perché un HttpServlet lanci ServletException, ma perché IOException? Qual è stato il ragionamento alla base di questo?

È stato utile?

Soluzione

Dai documenti:

  

IOException - se viene rilevato un errore di input o output quando il servlet gestisce la richiesta GET

Questo può accadere quando si stampa l'output del servlet:

response.getWriter (). print () - questo metodo genera IOException

Il socket può essere chiuso prima che la risposta finisca di stampare l'output.

Altri suggerimenti

Suggerirei che un IOException indica un problema con l'elaborazione dell'input / output, ad es. problemi nella lettura dell'input della richiesta o nella scrittura della risposta, mentre un ServletException ha più a che fare con problemi specifici del servlet, come errori riguardanti il ??provisioning / inizializzazione del servlet e l'elaborazione delle richieste.

Se il servlet scrive su un flusso di output (ovvero la pagina) attraverso le interfacce I / O, qualsiasi errore I / O verrà segnalato come IOException .

Forse l'API non dovrebbe usare direttamente le interfacce I / O. Non è raro che WebApps utilizzi RMI per consentire a RMIException di passare attraverso l'interfaccia servlet (per qualche motivo è una sottoclasse di IOException ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top