OOP Exception Handling - Enter Number question.
Привет,
Моля за малко помощ.
Получава се някаква странно за мен завъртане на логиката.
при дебъгване с Ф11 на около 28-мото :) натискане и при въвеждане на вход по-голям от 100, минава през return num, стига до скобата (да излиза от ReadNumber) и отново се връща в catch(ArgumentOutOfRangeException). Някак си е странно.
Моля някой ако може да го обясни с няколко думи. Интересува ме защо се получава така а не как да го оправя ...
Поздрави,
А.
Привет,
мерси за съвета. Ще го преработя като разбера какво точно става ...
Пробвай без да дебъгваш. Рънни, въведи за вход число над 100 и след него две последователни други под 100, за да не те хваща outofrange exception-a.
Странно е как запомня числото над 100 или поне пътя по който го търси с Ф11 ...
Поздрави,
А.
Случи се при втория опит много е странно да, нямам идея защо става така, но сега разбрах защо хората са казали да не го използваме за control-flow-mechanism, ще разпитам този и онзи ако уцелим ще драсна 1 ред :)
edit: Exceptions are basically non-local
goto
statements with all the consequences of the latter, сиреч ако се използват като control flow mechanism рано или късно ще стане някой бъг затова не е хубаво да ги използваме по-този начин, а защо точно става така ще трябва някой с по-задълбочени познания да каже, ако инесеш от catch блока викането на ReadNumber(start, end); във едно finally мисля, че няма да се получи така, но съм го тествал 1 път и това неотговаря на основния въпрос :)почвам да си правя изпити по ООП, че имаме поправки ще следя темата с интерес :)
Като допълнение...
Бъга ще е StackOverflowException както отбеляза a_rusenov а причината е, че всеки път при викане на метода стака се пълни с ново ентри на метода и така в един момент ако се въвеждат само >100 числа ще се препълни.
Така си го превеждам аз .
Поздрави,
А.