Validação Java com BigDecimal

Boa noite a todos. Preciso de ajuda com o código abaixo. Ele recebe as informações perfeitamente, mas quando ele recebe alguma informação nula ou " " ocorre o numberException. Como faço a validação para evitar o numberexception? Alguém pode me ajudar?

BigDecimal a = null;
			a = new BigDecimal(d.getPA());
			d.setCAN(a != null ? dinheiro.format(a.add(new BigDecimal("100")).divide(new BigDecimal("100"))) : "");
			
			BigDecimal cA= null;
			cA =(BigDecimal) (a != null ? a.add(new BigDecimal("100")).divide(new BigDecimal("100")) : "");
			BigDecimal vMP = new BigDecimal(d.getVMP());
			d.setVSSA(dinheiro.format(vMP.divide(ca,2,RoundingMode.UP)));
			
			
			BigDecimal aN= null;
			aN = new BigDecimal(d.getPNA());
			d.setCAN(d.getPAN() != null ? dinheiro.format(aN.add(new BigDecimal("100")).divide(new BigDecimal("100"))) : "");
			
			BigDecimal cN= null;
			cN = (BigDecimal)(aN != null ? aN.add(new BigDecimal("100")).divide(new BigDecimal("100")) : "");
			BigDecimal vSSA = (BigDecimal)(vMP.divide(ca,6,RoundingMode.UP));
			d.setVSN(dinheiro.format(vSSA.multiply(cn).setScale(2,RoundingMode.UP)));

Experimenta jogar dentro de um bloco try-catch. Deve resolver.

Ou…

boolean deuCerto = false;
do {
    (...)
    try {
        operações(...);
        deuCerto = true;
    } catch (numberException n) {
        println(“Valor inválido, digite novamente!);
    }
} while (deuCerto != true);

Estou em um dispositivo móvel, então não dá pra fazer o código todo, mas acho que você já pegou a ideia.

Testa e conta o resultado.

E seja bem vinda ao fórum!