entiende profundamente la diferencia entre throw
y tire nueva excepción ()
]
En el manejo de excepciones, existen diferencias significativas en los efectos de uso de
y tirar nueva excepción ()
. Vamos a sumergirnos en sus comportamientos respectivos:
throw : retener la información de excepción original
]
La instrucción
retrasa la excepción actualmente activa. Cuando se usa en el bloque capt
, conserva el tipo, el mensaje y el rastro de la apila de la excepción original. Esto permite que la excepción continúe propagándose sin ser modificado.
try { ... }
catch { throw }
try , el bloque capt
volverá a retirar la misma excepción, con su información original intacta.
tirar nueva excepción () : restablecer la stack traza
]
Por otro lado,
crea una nueva instancia de excepción y usa el mensaje especificado. Esta acción restablece el rastro de la pila, eliminando toda la información de traza que ocurrió antes del bloque capt
.
try{ ... }
catch(Exception e) {throw new Exception(e.message) }
try , el bloque capt
creará una nueva excepción con el mensaje de la excepción original, pero la traza de pila comienza desde el bloque capt
.
throw ex
recomiendo no usar
en el bloque capt
. Hacerlo causará la excepción original para propagarse, pero el rastro de la pila se restablecerá. Esto hace que la depuración sea muy difícil la fuente de excepciones.
] En algunos casos, puede ser necesario envolver todas las excepciones en un objeto de excepción personalizada para proporcionar información adicional. Para hacer esto, defina una nueva clase de excepción heredada de
excepción, incluidos los cuatro constructores de excepción. Opcionalmente, puede agregar un constructor adicional que acepte la excepción original y la información adicional. Al lanzar una excepción personalizada, asegúrese de pasar la excepción original como un parámetro de excepción interna para preservar su traza de pila y otras propiedades.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3