Najčešće korišćeni izuzeci:

  • ArithmeticException - osnovna klasa izuzetaka. Bacaju ih aritmetički operatori.

  • DivideByZeroException - baca se pri pokušaju deljenja nulom.

  • IndexOutOfRangeException - baca se pri pokušaju pristupa nepostojećem elementu niza.

  • InvalidCastException - baca se pri pokušaju eksplicitne konverzije, konverzija nije moguća.

  • OutOfMemoryException - baca se pri neuspelom pokušaju alociranja memorije operatorom new.

  • StackOverflowException - baca se kada stek poziva ima previše poziva metoda koje tek treba kompajlirati.

Primer:

static void Main(string[] args)
{
    double op1, op2, rez = 0;
    char @operator;
 
    try
    {
        Console.Write("Unesi prvi broj: ");
        op1 = Double.Parse(Console.ReadLine());
        Console.Write("Unesi operator: ");
        @operator = Char.Parse(Console.ReadLine());
        Console.Write("Unesi drugi broj: ");
        op2 = Double.Parse(Console.ReadLine());
 
        if (@operator != '+' && @operator != '-' && @operator != '*' && @operator != '/')
            throw new Exception("Pogresan operator: " + @operator.ToString());
 
        switch (@operator)
        {
            case '+':
                rez = op1 + op2;
                break;
            case '-':
                rez = op1 - op2;
                break;
            case '*':
                rez = op1 * op2;
                break;
            case '/':
                if (op2 == 0)
                    throw new DivideByZeroException();
                rez = op1 / op2;
                break;
        }
 
        Console.WriteLine("{0}{1}{2}={3}", op1, @operator, op2, rez);
    }
    catch (DivideByZeroException ex)
    {
        Console.WriteLine(ex.Message);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Klasa System.Exception ima veliki broj svojstava:

  • Message - predstavlja informacije o izuzetku i samo se može čitati. Vrednost svojstva Message se definiše prilikom bacanja izuzetaka i prosleđuje se kao argument konstruktoru izuzetka.

  • HelpLink - predstavlja vezu do datoteke za pomoć povezanu sa izuzetkom.

  • StackTrace - služi samo za čitanje i sadrži informaciju o steku poziva za poruku o grešci.

  • Source - sadrži ime programa koji je doveo do izuzetka.

  • TargetSite - sadrži ime metode iz koje je bačen izuzetak.



Last modified: Monday, 16 December 2019, 11:07 AM