learningUser
learningUser

Reputation: 482

IF inside try block

I want to execute my method callmethod if the condition inside the IF statement is met. Else it should execute the catch block. But during implementation, if the condition is not met, it does not go to the catch block.

try{
if(count==0)
callmethod();
}
catch (Exception e){
System.out.println(e);
}

Upvotes: 0

Views: 12618

Answers (2)

Welbog
Welbog

Reputation: 60448

This is a good application for methods:

try {
  if (count == 0) {
    callOneMethod();
  }
  else {
    callOtherMethod();
  }
catch (Exception e) {
  callOtherMethod();
}

That way you don't have any duplicated code and you're not doing weird things with exceptions in non-exceptional cases.

Upvotes: 3

Eric Bachhuber
Eric Bachhuber

Reputation: 3952

Since you are trying to hit the catch block, you need to throw an exception if your parameter is not met (i.e. count != 0).

Example:

try {
    if(count==0){
        callmethod();
    } else {
        throw new SomeException("some message");
    }
}
catch (Exception e){
    System.out.println(e);
}

Upvotes: 1

Related Questions