Келесі код үзіндісін қарастырыңыз:
int index = FindClosestIndex(frame);
if (_data[index].Frame == frame)
return _data[index];
else
return interpolateData(frame, _data[index - 1], _data[index]);
Енді, бұл жағдайда FindClosestIndex()
ешқашан 0-ге қайтарылмайтынына көз жеткізу үшін осы код блогы алдында бірнеше тексеру жасадым. Бұл мүмкін болмауы керек. Алайда, FindClosestIndex
жүйесіндегі логика бірнеше күрделі болып табылады, сондықтан кейбір қате бұрыштарда ешкім күтпеген қателер табылған болуы мүмкін және менің код дұрыс болса да, FindClosestIndex
0 қате қайтарылуы мүмкін.
0 қайтарылса, _data [index - 1]
операторында ArgumentOutOfRangeException аламын. Мен бұл ерекшеліктің көпіршігін көтере аламын, бірақ мен мұны орындағым келеді:
if (index == 0)
throw new ApplicationLogicException("There is a bug that caused FindClosestIndex to return an int <= 0 when it shouldn't have.");
Егер сіздің кодыңызда қате күйін анықтайтын болса, тапсырыс берушінің ерекше жағдайын тастаудың бұл тәжірибесін ұсынасыз ба? Сізде мұндай жағдай болғанда не істейсіз?