Изузеци¶
Изузеци представљају грешке које се јављају током извршавања програма (енгл.
Runtime Errors). У програмском језику C# изузеци су представљени класама које
су директно или индиректно наслеђене из класе Exception која се налази у
именском простору System, односно склопу mscorlib.dll.
Примери класа изузетака са којима се можеш сусретати су:
Тип изузетка |
Опис |
|---|---|
|
основна класа за све изузетке |
|
основна класа за системске изузетке |
|
неправилно је индексиран низ |
|
референциран је null објекат |
|
метода није у валидном стању |
|
основна класа за изузетке аргумената |
|
аргумент методе је ван задатог опсега |
|
аргумент методе је null |
У оквиру .NET Framework-а доступно је више стотина класа које су директно
или индиректно наслеђене из класе Exception. Нећемо их наводити на овој
страници - све су детаљно наведене и описане у доступној
документацији
програмског језика C#.
Руковање изузецима помоћи ће ти да решиш проблеме који се могу јавити у свим
неочекиваним или изузетним ситуацијама када је програм покренут. Тада ћеш
користити кључне речи try, catch и finally - за пробање радњи које
можда неће успети, за хватање неуспелих радњи и за поступке након тога.
Често, изузетак можда неће изазвати метода коју си ти позвао директно, већ нека друга метода ниже у стеку позива. Када се баци изузетак, стек позива ће се одмотати, након чега ће се пронаћи и извршити метода за хватање баш тог одређеног типа изузетка. Ако се она пак не пронађе нигде у стеку позива, прекинуће се процес и приказати одговарајућа порука.
Основни облик обраде изузетака изгледа овако:
try
{
// Kôd koji može baciti izuzetak
}
catch (TipIzuzetka promenljiva)
{
// Kôd za obradu izuzetka
}
finally
{
// Kôd koji se izvršava bez obzira da li je izuzetak bačen ili ne
}