dodatak > Sopstveni izuzeci
Completion requirements
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