Loading...
todor.vachev.1 avatar todor.vachev.1 3 Точки

[Домашно C# Basics March] Тема 3, задача 16

Здравейте,

Понеже кандидатствах за втория прием и реших да се подготвя предварително и започнах да решавам задачките от Мартенския курс, та остана ми само едно нещо което да направя по тази задачка..

Въпросът ми е следният, във catch-a на ред 15, ако се стигне до него как да направя така, че да спре до там, защото ако числото ми е прекалено голямо и влезе в catch-a просто ми изписва, че е out of range и си продължава надолу с останалия код... 

Пробвах със Environment.Exit; , но ми дава грешка:

"only assignment call increment decrement await and new object expressions can be used as a statement"

Ето го и моят код.

 

Благодаря предварително! :) 

Тагове:
0
Programming Basics
quickben avatar quickben 966 Точки

И аз не съм напреднал така, че не ме слушай много, но ето ти примерно една опция - линк . Тук просто се прави един цикъл докато не се въведе правилното число или в твоя случай както си го написал докато програмата не срещне който и да е exception. Става и само  с Environment.Exit без цикъла, НО трябва да е Environment.Exit(0); след този ред Console.WriteLine("Out of Range!"; или преди него ако не искаш да го изписва на конзолата. Също така може да напишеш един throw; и пак ще стане това което искаш.

Общо казано опции много, но как е правилно да се процедира е друг въпрос :) Виж ТУК и ще разбереш доста неща.... най-малкото, че въобще не е добре да напишеш  "catch (Exception)", защото хваща абсолютно всички изключения което не би трябвало да се прави или поне аз така съм разбрал. Пак ти казвам и аз като теб съм начинаещ така, че гледай какво правят по-напредналите хора и какво ти говорят и пишат. Допълнително да ти кажа и аз пуснах подобна тема можеш да я прочетеш ТУК може и да ти е полезна. Другото от гуугъл, но ти препоръчвам първо да прочетеш главата от книгата и да изгледаш видеото поне един път за да си наясно горе-долу какви са добрите практики и да ги разпознаваш и избягваш когато гледаш как са постъпвали други хора. :)

 

0
todor.vachev.1 avatar todor.vachev.1 3 Точки

Благодаря ти, идеята с цикъла while е доста добра и за целите на задачката ще свърши работа тъй като единственият exception който може да се получи вътре в него е, ако числото е прекалено голямо (или поне аз не виждам какво друго може да се случи). Иначе да със сигурност трябва да се науча и на прилична практика как да пиша exception-и и не само, всичко с времето си. А явно това, че ми липсваше (0) е било проблема ми със Environment.Exit :D 

0
quickben avatar quickben 966 Точки

Горещо ти препоръчвам първо да се запознаеш с правилния начин за обработка на изключенията, че ако свикнеш да ги пишеш по един начин и той се окаже грешен (както мисля е в твоя случай) по една или друга причина после ще ти е по-трудно да се отучиш ( празна глава лесно се пълни : ) . Това че в случая "решението" с цикъла работи и те задоволява въобще не означава, че трябва така да го правиш.

Допълнително в try блока имаш два метода - Convert.ToUInt32(); и Console.ReadLine(); и двата могат да хвърлят различни изкючения можеш да ги видиш тук и тук.( в msdn си пише кой метод какви изключения може да даде )

0
todor.vachev.1 avatar todor.vachev.1 3 Точки

Прав си! Ще го направя! :) 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.