I have dispute with my friend.
He said me that this code:
method SetBalance(balance) {
if (balance > 0) {
this.balance = balance;
return true;
}
return false;
}
is better then this:
method SetBalance(balance) {
if (balance < 0) {
throw new InvalidArgumentException("Balance couldn't be negative")
}
this.balance = balance;
}
My question is: “Which approach is better for validation?” and why?
Thank you.
Ah. Return status versus exception.
I prefer throwing exceptions, because you can’t really ignore an exception. The program either crashes, or you have to explicitly catch and handle it.
You can just ignore a return status.
Besides, isn’t this the reason exceptions exist in modern programming? To deal with, well… exceptions (balance <= 0, something that shouldn’t happen).