HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

16.2.3. Kivételek feldobása

A C# nyelv lehetőséget ad a saját magunk által definiált kivételek használatára is. A kivételek dobása a throw kulcsszóval történik.

throw (exception);

throw exception;

A program bármely szintjén, bárhol ”dobhatjuk” a kivételt a throw segítségével, és egy tetszőleges catch blokkal el is kaphatjuk. Amennyiben nem kapjuk el sehol, az a Main() függvény szintjén is megjelenik, végül az operációs rendszer lekezeli a saját hibakezelő rutinjával, ami legtöbbször azt jelenti, hogy a programunk leáll.

A következő példa bemutatja, hogyan dobhatunk saját kivételt.

class Verem

{

public Object Pop()

{

if (vm>0) { vm--; return t[vm]; }

else throw new Exception(”Üres a verem”);

}

}

A példában a verem tetejéről akarunk levenni egy elemet akkor, ha az nem üres. Amennyiben nincs már elem a veremben, ezt egy kivétel dobásával jelezzük. A kivétel feldobását a throw végzi, melynek paramétere egy exception osztály: Exception(”Hibaüzenet”). A kivétel dobásakor a new kulcsszót használtuk, mivel a definiált kivétel is egy osztály, így példányosítani kellett. A konstruktor paramétere egy string, melyben a hibaüzenetet adhatjuk meg, amit a kivétel elkapásakor kiírhatunk. (Ha nem kapjuk el, az operációs rendszer akkor is kiírja egy hibaablakban a hibaüzenetként megadott stringet.)