[Homework] OOP - Exception Handling - Септември 2014
Не знам дали има необходимост да се отваря такава тема за 2 задачи, но все пак. Ето моите решения на задачите :
Не знам дали има необходимост да се отваря такава тема за 2 задачи, но все пак. Ето моите решения на задачите :
Здравей, колега
Относно 2-ра задача мисля, че трябва да се хвърля "exception" и когато числото не е в дадения диапазон.
Аз изпитах голямо затруднение да разбера условието на задачата и се излакомих да погледна решението ти.
Поздрави Даниел :)
Ето и от мен едно решение на втора задача: Enter Numbers
Според мен ако възникнат изключения, трябва да се обработят и програмата да продължи да работи, докато не се въведат 10 числа, отговарящи на условията. Т.е. програмата не трябва да гърми, когато се въведе стринг или твърде голямо число, а трябва да даде възможност на потребителя да въведе друг вход.
Здравей колега,
Задачата ти трябва да прави може би и една проверка дали ше можеш да въведеш останалите числа, защото ако първото е 99 няма никога да излезнеш от while-a. /.. if (end - num < 10 - counter) .. / нещо такова.
Нямаш нужда от catch (OverflowException) тъй като числата са ти между 0 и 100 и никога няма да кечне ;)
Ето и моите:
Втора задача мисля, че съм я направил с по-елегантно решение. :)
Втората ти задача гърми, и идеята е всяко следващо число трябва да по-голямо от предходното!
Оправих го ;)
В условието много ясно е казано какво трябва да прави методът: да чете числа в даден интервал и ако нещо не е наред да хвърля грешка.
Самата програма трябва да използва горния метод, като му подава интервала, в който трябва да са числата и да следи дали всяко следващо число е по-голямо от предходните. Ако нещо някъде преди това гръмне, именно програмата трябва да хване изключението, да го обработи и да продължи работата си.
Поради тези размисли горе моето решение изглежда така.
Мисля, че във втора задача е грешно да използваш ArgumentException, защото това означава, че е възникнало изключение от грешно въведени аргументи на метода, а то не е така.
@ttitto относно "Enter numbers", когато подадеш число n, което е равно на end по-правилно е end = n - 1, а не start = n + 1;
ето моето решение на EnterNumbers.
Подкрепям ttitto. И според мен работата на метода е да хвърли изключение, което после да се прехване и обработи в Main().
Ето и моето домашно ТУК.
Трябва да добавиш една проверка за числата, понеже в условието е зададено "write a program that enters 10 numbers: a1, a2, … a10, such that 1 < a1 < … < a10 < 100", т.е. всяко следващо число трябва да е по-голямо от предходното.
Да прав си. Това го бях пропуснал. Вече е оправено.
Благодаря, доста ми помогна с решението си! :)
Здравейте колеги, ето го и моето решение на задача 2. Enter Numbers
GoShow на първата ти задача можеш да си спестиш единия catch просто добави какъв тескт искаш в if-а ;)