Todo lo que deberías saber sobre Excepciones de Apex en Salesforce

Comparte la información a tus amigos

¿Por qué usar excepciones?

Las excepciones son causadas por errores encontrados cuando ejecutamos código que interrumpe su flujo normal de ejecución.

Se utilizan para recuperarse de los errores, gestionarlos y asegurarnos de una apropiada ejecución del código.

Tipos de Excepciones

Excepciones Nativas: 

  • Apex ofrece un framework nativo para gestionar excepciones por default.
  • Suceden cuando se interrumpe el flujo del programa automáticamente por el sistema.
  • Pueden haber múltiples bloques “Catch”. Sin embargo, la excepción genérica debe ser la última.
  • El bloque Finally es ejecutado cuando la excepción sucede o no. Además, se utiliza regularmente para hacer limpieza de variables o código.
Default Exception

Excepciones Personalizadas:

  • Para interrumpir el flujo del programa y gestionar los errores en cualquier parte del código.
  • Para manejar excepciones de manera más detallada.
  • Para crear una excepción personalizada se debe extender a la clase “Exception”.
  • El nombre de nuestra clase personalizada debe terminar con la palabra “Exception”. Por ejemplo: “PurchaseException” o “CustomException”.

Métodos de Excepciones: 

Métodos Comunes

  • getTypeName(): Devuelve el tipo de excepción.
  • getMessage(): Para obtener el mensaje del error.
  • getCause(): Devuelve la causa de la excepción.
  • getLineNumber(): Para devolver la línea en donde ocurre la excepción.

Otros Métodos

  • getDmlFieldNames: Nombre de los campos que causan el error.
  • getDmlId: Id de los registros fallidos que causan el error.
  • getDmlMessage: El error del mensaje por un registro fallido específico.
  • getNumDml: Devuelve el número de registros fallidos.

Consideraciones sobre Excepciones

Excepciones Gestionables: 

  • addError(): Para revertir DML operaciones y retornar el error en un trigger.
  • ApexPages.message(msg): Para mostrar los errores en un visualforce page.
  • Clase “Messaging”: Para devolver errores vía e-mail. 

Excepciones no Gestionables: 

  • LimitExceptions no pueden ser manejables. 
  • Los errores de Assertion no pueden ser gestionables.

Comparte la información a tus amigos