No bloco abaixo, todos os erros que não sejam de chave duplicada entrarão na exceção OTHERS pois ela está colocada antes das exceções de valores nulo e FK, como essas duas se encaixam dentro de uma exceção OTHERS, então elas serão apresentadas nesta que está colocada no bloco de exceções antes das próprias exceções que tratam o nulo e a FK. Então não é que a exceção OTHERS é executada sempre por último, como a resposta do exercício indica, é que quando ela é colocada antes de qualquer outra exceção, todas que vierem acabarão por entrar na OTHERS.
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
RAISE_APPLICATION_ERROR(-20010, 'Cliente '||p_ID||' já cadastrado!!!');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20025, 'Erro genérico : '|| SQLERRM);
WHEN e_NULL THEN
RAISE_APPLICATION_ERROR(-20015, 'A coluna ID não pode receber valores nulos ou vazios.');
WHEN e_FK_SEGMENTO THEN
RAISE_APPLICATION_ERROR(-20020, 'Segmento '||p_SEGMERCADO_ID||' precisa estar cadastrado na tela de segmentos.');