Saltar al contenido principal

Manejo de errores

Todas las funciones que lanzan excepciones en v3 generan un DrUtilsError en lugar de un Error genérico. Puedes importarlo desde dr-utils/errors y distinguir por su campo .code.

import { parseCedula } from 'dr-utils'
import { DrUtilsError } from 'dr-utils/errors'

try {
parseCedula('invalido')
} catch (e) {
if (e instanceof DrUtilsError) {
console.error(e.code) // 'INVALID_CEDULA'
console.error(e.message) // '"invalido" is not a valid cedula.'
}
}

DrUtilsError extiende Error, por lo que los checks instanceof Error existentes siguen funcionando.

Códigos de error​

CódigoLanzado por
INVALID_CEDULAparseCedula, formatCedula, maskCedula
INVALID_RNCparseRNC, formatRNC, maskRNC
INVALID_NCFparseNCF, formatNCF
INVALID_PHONEparsePhoneNumber, formatPhoneNumber, maskPhoneNumber
INVALID_PLATEparsePlate, formatPlate
FORMAT_CEDULA_FAILEDformatCedula
FORMAT_RNC_FAILEDformatRNC
FORMAT_NCF_FAILEDformatNCF
FORMAT_PHONE_FAILEDformatPhoneNumber
FORMAT_PLATE_FAILEDformatPlate
FORMAT_DOP_FAILEDformatDOP (valor no finito)
ITBIS_NEGATIVEapplyItbis, removeItbis, splitItbis
ITBIS_INVALID_AMOUNTapplyItbis, removeItbis, splitItbis (monto no finito)
ITBIS_INVALID_RATEapplyItbis, removeItbis, splitItbis (tasa negativa o no finita)
AMOUNT_TO_WORDS_OUT_OF_RANGEamountToWords (negativo, no finito o mayor a 999,999,999.99)
PAYROLL_INVALID_AMOUNTcalculateTSS, calculateISR, calculateNetSalary (monto negativo o no finito)
PAYROLL_INVALID_OPTIONcalculateTSS, calculateNetSalary (minimumWage / srlRate negativo o no finito)

Usar safe parsers para evitar excepciones​

Si prefieres no usar try/catch, usa las variantes safe parser que retornan { ok: true, value } | { ok: false, error }.