Útmutató a System.exit ()

1. Áttekintés

Ebben az oktatóanyagban megnézzük, mit System.exit jelentése Java-ban.

Megnézzük a céljait, hol és hogyan kell használni. Meglátjuk azt is, mi a különbség, ha különböző állapotkódokkal hívjuk meg.

2. Mi az System.exit?

System.exit egy üres módszer. Felvesz egy kilépési kódot, amelyet továbbad a hívó szkriptnek vagy programnak.

Kilépés a következő kóddal: nulla jelentése normál kijárat:

System.exit (0);

Bármely egész számot átadhatunk argumentumként a metódusnak. A nullától eltérő állapotkód rendellenes kilépésnek számít.

Felhívás a System.exit metódus befejezi a jelenleg futó JVM-et és kilép a programból. Ez a módszer nem tér vissza normálisan.

Ez azt jelenti a következő kód a System.exit gyakorlatilag elérhetetlenés mégis, a fordító nem tud róla.

System.exit (0); System.out.println ("Ez a sor elérhetetlen");

Nem jó ötlet egy programot bezárni System.exit (0). Ugyanezt az eredményt adja nekünk, ha kilépünk a fő- metódust, és a következő sorok végrehajtását is megakadályozza, a szál hívása is System.exit blokkol, amíg a JVM le nem áll. Ha egy leállítási kampó feladatot küld ennek a szálnak, az holtponthoz vezet.

3. Miért van szükségünk rá?

A tipikus felhasználási eset System.exit amikor rendellenes állapot van, és azonnal ki kell lépnünk a programból.

Továbbá, ha a programot a fő módszertől eltérő helyről kell befejeznünk, System.exit elérésének egyik módja.

4. Mikor van rá szükségünk?

Gyakori, hogy egy szkript az általa meghívott parancsok kilépési kódjaira támaszkodik. Ha egy ilyen parancs Java alkalmazás, akkor System.exit hasznos a kilépési kód elküldéséhez.

Például ahelyett, hogy kivételt vetnénk, visszaadhatunk egy rendellenes kilépési kódot, amelyet aztán a hívó szkript értelmezhet.

Vagy használhatjuk System.exit bármely regisztrált leállítási kampó meghívására. Ezeket a kampókat úgy lehet beállítani, hogy megtisztítsák a tárolt erőforrásokat, és biztonságosan kiléphessenek a nem daemon szálakból.

5. Egyszerű példa

Ebben a példában megpróbálunk elolvasni egy fájlt, és ha létezik, akkor kinyomtatunk belőle egy sort. Ha a fájl nem létezik, akkor kilépünk a programból System.exit a fogási blokkból.

próbáld ki a {BufferedReader br = new BufferedReader (új FileReader ("file.txt")) parancsot; System.out.println (br.readLine ()); br.close (); } catch (IOException e) {System.exit (2); } végül {System.out.println ("Kilépés a programból"); }

Itt meg kell jegyeznünk, hogy az utolsó blokk nem kerül végrehajtásra, ha a fájl nem található. Mert a System.exit a fogási blokkokon kilép a JVM-ből, és nem engedélyezi a végül blokk végrehajtásához.

6. Állapotkód kiválasztása

Bármely egész számot átadhatunk állapotkódként, de az általános gyakorlat az, hogy a System.exit státuskóddal a 0 normális, mások rendellenes kijáratok.

Ne feledje, hogy ez csak „jó gyakorlat”, és nem szigorú szabály, amelyet a fordító érdekelne.

Is, érdemes megjegyezni, amikor Java parancsot hívunk meg a parancssorból, hogy az állapotkódot figyelembe vesszük.

Az alábbi példában, amikor megpróbáljuk végrehajtani SystemExitExample.class, ha kilép a JVM-ből a System.exit nem nulla állapotkóddal, akkor a következő visszhang nem kerül kinyomtatásra.

java SystemExitExample && echo "Nem lesz nyomtatva"

Annak érdekében, hogy programunk képes legyen kommunikálni más szabványos eszközökkel, fontolóra vehetjük a szabványos kódok betartását, amelyeket a kapcsolódó rendszerek kommunikálnak.

Például a UNIX állapotkódok 128-at definiálnak az „érvénytelen argumentum a kilépéshez” szabványként. Szóval, jó ötlet lehet ezt a kódot használni, amikor állapotkódunkat közölni kell az operációs rendszerrel. Ellenkező esetben szabadon választhatjuk meg a kódunkat.

7. Következtetés

Ebben az oktatóanyagban megvitattuk, hogyan System.exit működik, mikor kell használni, és hogyan kell használni.

Jó gyakorlat, ha az alkalmazáskiszolgálókkal és más szokásos alkalmazásokkal végzett munkavégzés során kivételkezelést vagy egyszerű visszatérési utasításokat használunk a programból való kilépéshez. A System.exit A módszer jobban megfelel szkriptalapú alkalmazásokhoz, vagy bárhol értelmezik az állapotkódokat.

A cikkben található példákat a GitHubon tekintheti meg.