Según tengo entendido, la clase Excepción de Java ciertamente no es inmutable (métodos como initCause
y setStackTrace
dan algunas pistas al respecto). Entonces, ¿es al menos seguro para subprocesos? Supongamos que uno de mis clases tiene un campo como este:Java: ¿la clase de excepción es segura para subprocesos?
private final Exception myException;
¿Puedo exponer con seguridad este campo para múltiples hilos? No estoy dispuesto a discutir casos concretos donde y por qué podría ocurrir esta situación. Mi pregunta es más sobre el principio: ¿puedo decir que una clase que expone el campo del tipo Excepción es segura para subprocesos?
Otro ejemplo:
class CustomException extends Exception
{
...
}
¿Es esta clase thread-safe?
+1 por "simplemente se siente mal". – Yishai
El primer ejemplo es en realidad hipotético.Apenas puedo imaginar algo como esto en mi código :) En cuanto al segundo ejemplo. ¿Puedo decir en mi documentación que la clase CustomException es segura para subprocesos y duerme mucho después? –
@Vilius: ¿tiene que cumplir algún requisito de cerebro de hare diciendo que todas las clases "deben ser seguras para subprocesos"? Y, por supuesto, una superclase segura para subprocesos no hace que las subclases sean seguras para subprocesos. Pero sí, no perdería nada de esto. –