Изузеци

Изузеци представљају грешке које се јављају током извршавања програма (енгл. Runtime Errors). У програмском језику C# изузеци су представљени класама које су директно или индиректно наслеђене из класе Exception која се налази у именском простору System, односно склопу mscorlib.dll.

Примери класа изузетака са којима се можеш сусретати су:

Тип изузетка

Опис

Exception

основна класа за све изузетке

SystemException

основна класа за системске изузетке

IndexOutOfRangeException

неправилно је индексиран низ

NullReferenceException

референциран је null објекат

InvalidOperationException

метода није у валидном стању

ArgumentException

основна класа за изузетке аргумената

ArgumentOutOfRangeException

аргумент методе је ван задатог опсега

ArgumentNullException

аргумент методе је 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
}