2012-09-14 34 views

Respuesta

5

Para PrintStream que a menudo está escribiendo para erradicar o errar, esta secuencia podría haberse cerrado o descartado pero no desea que el programa falle inesperadamente como resultado.

PrintWriter es en muchos sentidos la versión Written de PrintStream, aunque no estoy seguro de que fuera una buena idea repetir los errores de PrintStream. ;)

El hecho de que PrintWriter no informe IOException hace que sea una mala elección para escribir texto en un socket donde a menudo necesita saber que la conexión ha fallado.

1

Creo que es principalmente porque System.err es un PrintStream.

Cuando maneja excepciones en un bloque catch, es común invocar e.printStackTrace() y escribe en System.err. Si esa llamada arrojara una excepción, usted perdería la excepción original y obtendría el error PrintStream de su código. Entonces necesitarías un try/catch extra dentro de tu catch block para evitar ese problema, lo que hace un gran desastre.

Tenga en cuenta que JDK 1.7 soluciona el problema de lanzar una excepción desde un bloque catch, y le permite acceder a ambas excepciones.

Cuestiones relacionadas