Kivételkezelés
A PascalABC.NET egy új generációs Pascal programozási nyelv, beleértve a klasszikus Pascal-t, a Delphi legtöbb nyelvi jellemzőit és számos saját kiterjesztését. Ez a Microsoft.NET platformon valósul meg, és minden modern nyelvi eszközt tartalmaz: osztályok, műveletek túlterhelése, interfészek, kivételkezelés, generikus osztályok és szubrutinok, szemétgyűjtés, lambda kifejezések, párhuzamos programozási eszközök.
A PascalABC.NET egy multi-paradigma nyelv: strukturális, tárgyorientált és funkcionális stílusban programozható.
A PascalABC.NET egy egyszerű és erőteljes integrált fejlesztői környezet, amely támogatja az IntelliSense technológiát, amely automatikus formázási eszközöket, integrált hibakeresőt és integrált űrlaptervezőt tartalmaz.
Könyv: Nyelv leírás PascalABC.NET
Kivételkezelés
Kivételkezelés: Áttekintés
Ha a program végrehajtása során hiba történik, egy úgynevezett kivétel keletkezik. amely lehallgatható és feldolgozható. Kivétel egy olyan objektum, amely az Exception osztályból származik, amely egy kivétel esetén keletkezik.
Számos általános kivétel létezik. Egyéni kivétel típusokat is megadhat.
Ha a kivétel nem kerül feldolgozásra, a program hibát okoz. A kivételek kezeléséhez használja a próbaverziót. kivéve.
Általában kivételeket emelnek alprogramokban, mivel a szubrutin fejlesztője általában nem tudja, hogyan kell kezelni a hibahelyzetet. A szubrutin felhívásakor általában már ismert, hogyan kell kezelni a kivételt. Tegyük fel például, hogy a következő funkciót fejlesztettük ki:
függvény mymod (a, b: egész): egész;
Ha a mymod (1,0) -et hívod, akkor a System.DivideByZeroException kivételével az egész osztás 0-ra kerül.
Tekintsünk egy naiv kísérletet a hibahelyzet kezelésére a mymod függvényen belül:
függvény mymod (a, b: egész): egész;
writeln ("függvény mymod: osztás 0-mal");
Ez a megoldás rossz, hiszen a mymod funkciót fejlesztő programozó nem tudja, hogyan fogják használni. Például, amikor a mymod függvényt hurokban hívja, több hibaüzenet jelenik meg a képernyőn.
A legegyszerűbb módja az, hogy hagyja el a függvény eredeti verzióját, és kezelje a System.DivideByZeroException kivételt:
writeln ("Division by 0");
A funkció belsejében lévő különbség az, hogy a program fejlesztésekor meghatározzuk a kivételt feldolgozni kívánt műveletet. Ez lehet egy konkrét hibaüzenet, kimenet a hiba fájlhoz vagy üres utasítás (abban az esetben, ha a kivételnek el kell távolítania).
Ennek a megoldásnak azonban jelentős hátránya van: a System.DivideByZeroException kivétel a = 1-re emelkedik, és nem kapcsolódik az mymod függvényhez. Ennek a hátránynak a kiküszöbölése érdekében saját kivétel osztályunkat definiáljuk, és izgatjuk a mymod függvényben:
függvény mymod (a, b: egész): egész;