Ну, во-первых, вы должны убедиться, что счетчик на самом деле не может быть отрицательным. В настоящее время он уменьшится до -1 и выдаст исключение, если вы попытаетесь уменьшить его до -2.
В качестве альтернативы простому перехвату исключения вы можете выставить чек как свойство CanDecrement
, чтобы его можно было использовать отдельно:
class Counter {
private int count;
public bool CanDecrement { get{ return count > 0; } }
public void Decrement() {
if (!CanDecrement) {
throw new ArguementOutOfRangeException("The count can never be negative!");
}
count--;
}
}
Использование:
if (myObjectOfCounterClass.CanDecrement) {
myObjectOfCounterClass.Decrement();
} else {
Console.WriteLine("The count can not be negative.");
}
Таким образом, вы можете использовать это свойство для кода, где вы ожидаете, что условие возникнет, а в коде, где оно обычно не возникает, вы можете просто вызвать Decrement
и разрешить обработку исключения, как любую другую непредвиденную ошибку.