25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

460 Въведение в програмирането със C#<br />

Един метод трябва да прихваща само изключенията, които<br />

е компетентен да обработи адекватно, а не всички.<br />

Това е много важно правило, което непременно трябва да спазвате. Ако не<br />

знаете как да обработите дадено изключение, или не го прихващайте, или<br />

го обгърнете с ваше изключение и го хвърлете по стека да си намери<br />

обработчик.<br />

Упражнения<br />

1. Да се намерят всички стандартни изключения от йерархията на<br />

System.IO.IOException.<br />

2. Да се намерят всички стандартни изключения от йерархията на<br />

System.IO.FileNotFoundException.<br />

3. Да се намерят всички стандартни изключения от йерархията на<br />

System.ApplicationException.<br />

4. Обяснете какво представляват изключенията, кога се използват и как<br />

се прихващат.<br />

5. Обяснете ситуациите, при които се използва try-finally конструкцията.<br />

Обяснете връзката между try-finally и using конструкциите.<br />

6. Обяснете предимствата от използването на изключения.<br />

7. Напишете програма, която прочита от конзолата цяло положително<br />

число и отпечатва на конзолата корен квадратен от това число. Ако<br />

числото е отрицателно или невалидно, да се изпише "Invalid Number"<br />

на конзолата. Във всички случаи да се принтира на конзолата "Good<br />

Bye".<br />

8. Напишете метод ReadNumber(int start, int end), който въвежда от<br />

конзолата число в диапазона [start…end]. В случай на въведено<br />

невалидно число или число, което не е в подадения диапазон, хвърлете<br />

подходящо изключение. Използвайки този метод напишете програма,<br />

която въвежда 10 числа a 1, a 2, …, a 10, такива, че 1 < a1 < … < a10 <<br />

100.<br />

9. Напишете метод, който приема като параметър име на текстов файл,<br />

прочита съдържанието му и го връща като string. Какво е правилно да<br />

направи методът с евентуално възникващите изключения?<br />

10. Напишете метод, който приема като параметър име на бинарен файл и<br />

прочита съдържанието на файла и го връща като масив от байтове.<br />

Напишете метод, който записва прочетеното съдържание в друг файл.<br />

Сравнете двата файла.<br />

11. Потърсете информация в Интернет и дефинирайте собствен клас за<br />

изключение FileParseException. Вашето изключение трябва да съдържа<br />

в себе си името на файл, който се обработва и номер на ред, в

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!