При установке значения рекомендуется проверить диапазон и выдать исключение, если оно недопустимо.
Получив его, я бы не стал бросать исключение. Таким образом, кто-то может завершить работу приложения, отредактировав app.config вручную. В вашем геттере я бы ограничил значение конкретным диапазоном и вернул бы действительный результат.
if ((int)this["myproperty"] < 0 )
{
return 0;
}
if ((int)this["myproperty"] > 999 )
{
return 999;
}
return (int)this["myproperty"]