Квиз¶
Питање 1¶
Означи тачан исказ.
Изузетак настаје када се унесе кôд који нарушава синтаксна правила програмског језика.
Изузетак се детектује и отклања приликом компајлирања програма.
Изузетак настаје током извршавања програма када се стекну специфични услови.
Неисправан хардвер не може да изазове изузетак.
Питање 2¶
Допуни празнине у следећим реченицама. Кôд у програму који може бацити изузетак треба поставити у |blank| блоку. Кôд у програму помоћу којег се обрађује бачени изузетак треба поставити у |blank| блоку. Кôд у програму који се извршава без обзира да ли је изузетак бачен или не треба поставити у |blank| блоку.
Питање 3¶
try
{
int x = 0, y = 1 / x;
}
catch (Exception)
{
Console.Write("Prvi.");
}
catch (ArithmeticException)
{
Console.Write("Drugi.");
}
finally
{
Console.Write("Najzad.");
}
Шта ће се приказати у конзоли након извршавања датог кода?
Приказаће се текст Prvi.
Приказаће се текст Drugi.
Приказаће се текст Najzad.
Ништа. Компајлер ће јавити грешку.
Питање 4¶
Ако try-catch конструкција има више catch блокова у којима се хватају изузеци
Exception класе и осталих класа изведених из класе Exception, онда се:
изузетак основне Exception класе може хватати у било ком catch блоку.
изузетак основне Exception класе мора хватати у последњем catch блоку.
изузетак основне Exception класе мора хватати у првом catch блоку.
јавља грешка, јер се изузетак основне Exception класе не сме комбиновати са изузецима класа изведених из ње.
Питање 5¶
Ако се говори о руковању изузецима, који су од наведених исказа тачни?
try блок мора имати бар један catch или један finally блок.
try блок мора имати бар један catch и један finally блок.
try блок мора имати бар један catch блок.
try блок мора имати бар један finally блок.
try блок може имати више catch блокова.
try блок може имати више finally блокова.
Питање 6¶
static void Validacija(int x)
{
if (x <= 0)
{
throw new ArgumentException("x mora biti vece od nule.");
}
Console.WriteLine("x je vece od nule.");
}
Под претпоставком да се у catch блоку у try-catch-finally конструкцији у
главном програму хватају изузеци основне Exception класе, где се треба позвати
дата метода, да не би дошло до рушења програма када је x<=0?
Метода се треба позвати у finally блоку.
Метода се треба позвати у catch блоку.
Метода се треба позвати у try блоку.
Метода се може позвати било где у главном програму.
Питање 7¶
Ако треба поново бацити изузетак који је већ ухваћен у catch блоку, онда…
треба користити throw e, где је e објекат класе Exception
треба користити throw без аргумената
треба користити rethrow без аргумената
треба користити угнежђени try блок
Питање 8¶
Означи тачан исказ.
Изузетке треба користити као механизам за контролу тока програма.
Треба избегавати обраду специфичних, а фаворизовати обраду општих изузетака.
Након баченог и ухваћеног изузетка, потребна је и обрада изузетка.
Обраду изузетака треба користити приликом сваке радње, јер изузеци не утичу на перформансе програма.
Питање 9¶
Где изузетак не сме да се појави?
Изузетак не сме да се појави у finally блоку.
Изузетак не сме да се појави у catch блоку.
Изузетак не сме да се појави у try блоку.
Изузетак не сме да се појави у главном програму, тј. у методи Main().
Питање 10¶
Програмер развија апликацију која ради са текстуалним фајлом, па зато води
рачуна о могућим изузецима приликом отварања текстуалног фајла. Фајл отвара
у try блоку try-catch-finally конструкције. У ком блоку треба да затвори
фајл?
Фајл треба да затвори у finally блоку.
Фајл треба да затвори у catch блоку, приликом обраде изузетка.
Фајл треба да затвори такође у try блоку, где је и покушао да га отвори.
Фајл може да затвори у било ком блоку, јер затварање фајла не изазива изузетке.