U C#-u je dozvoljeno kreiranje sopstvenih (namenskih) izuzetaka. Sopstveni izuzetak se izvodi iz klase System.ApplicationException. Nasleđuje svojstva, koja je moguće predefinisati.

Primer 1:

Izuzetak.cs

using System;
 
namespace C
{
    class MarkOutOfRangeException : ApplicationException
    {
        public MarkOutOfRangeException() : base() { }
 
        public MarkOutOfRangeException(string message) : base(message) { }
 
        public override string Message
        {
            get { return "Mark isn't in the allowed range."; }
        }
    }
}

Ucenik.cs

using System;
 
namespace C
{
    class Ucenik
    {
        private string ime;
        private string prezime;
        private string razred;
        private int ocena;
 
        public Ucenik() { }
 
        public Ucenik(string ime, string prezime, string razred)
        {
            this.ime = ime;
            this.prezime = prezime;
            this.razred = razred;
        }
 
        public string Ime
        {
            get { return ime; }
            set { ime = value; }
        }
 
        public string Prezime
        {
            get { return prezime; }
            set { prezime = value; }
        }
 
        public string Razred
        {
            get { return razred; }
            set { razred = value; }
        }
 
        public int Ocena
        {
            get { return ocena; }
            set { ocena = value; }
        }
 
        public void PrikazPodataka()
        {
            Console.WriteLine("Ime: " + ime + "\n" + "Prezime: " + prezime + "\n" +
                "Razred: " + razred + "\n" + "Ocena: " + ocena);
        }
    }
}

Program.cs

using System;
 
namespace C
{
    class Program
    {
        static void ProveriOcenu(int ocena)
        {
            if (ocena != 1 && ocena != 2 && ocena != 3 && ocena != 4 && ocena != 5)
                throw new MarkOutOfRangeException();
        }
 
        static void Main(string[] args)
        {
            int n;
            try
            {
                Console.Write("Unesi broj ucenika: ");
                n = Int32.Parse(Console.ReadLine());
 
                Ucenik[] ucenici = new Ucenik[n];
                for (int i = 0; i < n; i++)
                {
                    ucenici[i] = new Ucenik();
                    Console.Write("Unesi ime ucenika: ");
                    ucenici[i].Ime = Console.ReadLine();
                    Console.Write("Unesi prezime ucenika: ");
                    ucenici[i].Prezime = Console.ReadLine();
                    Console.Write("Unesi razred: ");
                    ucenici[i].Razred = Console.ReadLine();
                    Console.Write("Unesi ocenu: ");
                    ucenici[i].Ocena = Int32.Parse(Console.ReadLine());
                    ProveriOcenu(ucenici[i].Ocena);
                }
 
                Console.WriteLine();
                foreach (Ucenik ucenik in ucenici)
                    ucenik.PrikazPodataka();
            }
            catch (MarkOutOfRangeException ex)
            {
                Console.WriteLine("Ocena se ne nalazi u dozvoljenom opsegu\n" + ex.Message);
            }
            catch (FormatException ex)
            {
                Console.WriteLine("Pogresan format\n" + ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Doslo je do greske\n" + ex.Message);
            }
        }
    }
}

.

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