En resumen, la respuesta es sí, es posible.
Por ejemplo, si la clase de excepción requiere que un objeto grande se inicialice como un campo, pero no hay suficiente memoria para asignarlo, obtendrá un objeto de excepción que arrojaría un OutOfMemoryException
.
Las excepciones son como cualquier otra clase y pueden arrojar excepciones en sí mismas. No hay nada en el lenguaje que lo desautorice.
Yo diría, sin embargo, que lanzar excepciones de una clase de excepción es una mala práctica y en general debería evitarse.
Actualización: (siguiente pregunta actualizada)
Si va a crear instancias de un objeto de excepción en un bloque try
, la catch
lo cogerá (suponiendo que atrapa el tipo apropiado de excepción). Si está instanciando en el bloque catch
, puede hacer eso en un try{}catch{}
anidado - esto es bastante normal para el código utilizado en un bloque catch que puede generar excepciones.
Como han dicho otros, algunas excepciones no deben ser detectadas (por ejemplo, OutOfMemory
o inesperado StackOverflow
), ya que no tiene una forma de manejarlas.
Podría aclarar su pregunta. ¿Es cuando la excepción se actualiza/crea? ¿Está en el bloque catch? –
Consulte mi modificación anterior. Gracias. – xport
Sin tener en cuenta. No todas las excepciones pueden y deben ser manejadas. Algunos son indicaciones de errores o lógica incorrecta. –