Nao seria o caso de implementar da seguinte maneira?
public void promover(Funcionario funcionario, boolean metaBatida){
Cargo cargoAtual = funcionario.getCargo();
if(Cargo.Gerente == cargoAtual) {
//exception is thrown
}
if(!metaBatida) {
//exception is thrown
}
//Do Something
}