A MAXScript programozási nyelv

Kivételkezelés

A try kifejezés

MAXScript provides simple exception-handling with the try expression, a simplified form of the C++ exception-handling scheme. The try expression lets you bracket a piece of code and catch any runtime errors. This allows you to respond appropriately or take corrective action, rather than let MAXScript halt the execution of your script and print an error message.

A MAXScript egy egyszerű kivételkezelés biztosít a try kifejezéssel, egy egyszerűsített módját a C++ kivételkezelési rendszernek. A kifejezés szintaxisa: try <védett_kifejezés> catch <hiba_esetén_kifejezés>. A <védett_kifejezés> végrehajtásra kerül, és bármilyen elkapott hiba esetén a vezérlés a <hiba_esetén_kifejezés>-re tevődik. Természetesen nem jut ide a vezérlés, amennyiben nem fordult elő hiba. Amennyiben a <védett_kifejezés> egy blokk-kifejezés, a blokk-kifejezés a hiba helyén felfüggeszti a futást.

Kivételek kiváltása

Kivétel dobására a throw() függvény szolgál, illetve a throw <hibaüzenet> [<érték>] alakja. Ha egy catch ágon a kivétel kezelésénél továbbdobjuk azt (argumentumok nélküli meghívással), akkor az eredeti try/catch blokkokat tartalmazó try blokk kivételkezelő ága fog lefutni, például:

try ( i=10 try ( i.x=1 ) -- futásidejű hibát generál catch ( print "Bad Error" -- hibaüzenet kiírása try (i.pos=[0,0,0]) -- szintén generál egy futási idejű hibát catch (throw()) -- a throw() külső catch()-re adja a vezérlést ) ) catch (print "Really Bad Error Occurred") -- hibaüzenet kiírása

Kivételek kezelése

A catch részen a kivételt a getCurrentException() függvénnyel kérdezhetjük le.

try ( throw "Hiba" ) catch ( format "*** % ***\n" (getCurrentException()) )