Duvida com tratamento de excecoes

try {
			bairro = bairro.toUpperCase();
			complemento = complemento.toUpperCase();

			if (complemento.contains(bairro)){
				throw new ConsistencyException("Nome do bairro no complemento de endereço", this);
			}
			
		} catch (Exception e) {
			throw new ConsistencyException("Campos nulos para verificacao da regra", this);
		}

Pq toda vez que eu executo esse código ele nunca entra no if? Mesmo que a condicao seja verdadeira ele passa batido e só cai no catch.
Como faco pra resolver isso?

Se bairro == null ou complemento == null, então vai ser gerada uma NullPointerException e vai cair no catch mesmo.

eles nao sao null.

Qual a exceção que foi capturada no catch (Exception e)?

    try {  
                bairro = bairro.toUpperCase();  
                complemento = complemento.toUpperCase();  
      
                if (complemento.contains(bairro)){  
                    throw new ConsistencyException("Nome do bairro no complemento de endereço", this);  
                }  
                  
            } catch (Exception e) {  
               throw new ConsistencyException("Campos nulos para verificacao da regra", this);  
           }  

Você lança uma exceção e no mesmo método faz um catch Exception… :roll:
Pode ocorrer qualquer erro, mas o sistema sempre vai dizer que foi ConsistencyException(“Campos nulos para verificacao da regra”, this);

A execução entra no IF sim!
Mas o corpo do IF lança uma ConsistencyException que é capturada em

catch (Exception e) {     
           throw new ConsistencyException("Campos nulos para verificacao da regra", this);     
}