Verschil in systeem. exit(0) , Systeem.exit(-1), Systeem.exit(1 ) in Java

Ik zou graag het verschil willen weten tussen het volgende in Java

System.exit(0);
System.exit(-1);
System.exit(1);

Wanneer moet ik de bovenstaande code correct gebruiken?


Antwoord 1, autoriteit 100%

De parameter van exit zou in aanmerking moeten komen als de uitvoering van het programma goed of slecht is verlopen. Het is een soort erfelijkheid van oudere programmeertalen waarbij het handig is om te weten of er iets mis is gegaan en wat er mis is gegaan.

De afsluitcode is

  • 0wanneer de uitvoering goed verliep;
  • 1, -1, whatever != 0wanneer er een fout is opgetreden, kunt u verschillende waarden gebruiken voor verschillende soorten fouten.

Als ik het goed heb, waren exit-codes vroeger alleen maar positieve getallen (ik bedoel in UNIX) en volgens bereik:

  • 1-127zijn door de gebruiker gedefinieerde codes (dus gegenereerd door exit(n)aan te roepen)
  • 128-255zijn codes die worden gegenereerd door beëindiging als gevolg van verschillende Unix-signalen zoals SIGSEGVof SIGTERM

Maar ik denk niet dat het je iets kan schelen tijdens het coderen op Java, het is maar een beetje informatie. Het is handig als u van plan bent uw programma’s te laten werken met standaardtools.


Antwoord 2, autoriteit 52%

Zero=> Alles oke

Positive=> Iets waarvan ik verwachtte dat het mis zou kunnen gaan, ging mis (slechte opdrachtregel, kan het bestand niet vinden, kan geen verbinding maken met de server)

Negative=> Iets wat ik helemaal niet had verwacht ging mis (systeemfout – onverwachte uitzondering – extern geforceerde beëindiging bijv. kill -9)

(waarden groter dan 128 zijn in feite negatief, als u ze beschouwt als 8-bits ondertekend binair of twee-complement)

Er is een heleboel goede standaard exit-codes hier


Antwoord 3, autoriteit 21%

System.exit(system call)beëindigt de momenteel draaiende virtuele Java-machine door de afsluitvolgorde te starten. Het argument dient als een statuscode.

Volgens afspraak geeft een statuscode die niet nul is een abnormale beëindiging aan.

 System.exit(0) or EXIT_SUCCESS;  ---> Success
  System.exit(1) or EXIT_FAILURE;  ---> Exception
  System.exit(-1) or EXIT_ERROR;   ---> Error

Lees meer op Java

Op Unix- en Linux-systemen, 0voor succesvolle uitvoeringen en 1of hoger voor mislukte uitvoeringen.


Antwoord 4, autoriteit 4%

Een afsluitstatuscode die niet nul is, geeft meestal een abnormale beëindiging aan. if n != 0, is het aan de programmeur om een ​​betekenis toe te kennen aan de verschillende n’s.

Van https://docs.oracle. com/javase/7/docs/api/java/lang/System.html.


Antwoord 5, autoriteit 3%

exit(0)wordt over het algemeen gebruikt om een ​​succesvolle beëindiging aan te geven. exit(1)of exit(-1)of een andere waarde die niet nul is, geeft in het algemeen een mislukte beëindiging aan.


Antwoord 6, autoriteit 2%

Hier is het antwoord.

System.exit(0);// normal termination - Successful - zero
System.exit(-1);//Exit with some Error
System.exit(1);//one or any positive integer // exit with some Information message

Antwoord 7

Een goede oplossing is elke foutcode > 255 wordt geconverteerd naar foutcode % 256.
Men moet hier specifiek op letten als ze een aangepaste foutcode > 255 en verwacht de exacte foutcode in de toepassingslogica.
http://www.tldp.org/LDP/abs/html/exitcodes. html


Antwoord 8

het verschil tussen de getallen in system.exit() wordt uitgelegd in andere antwoorden. maar het ECHTE VERSCHIL is dat System.exit() een code is die wordt teruggestuurd naar het aanroepproces. Als het programma wordt aangeroepen door het besturingssysteem, zal de retourcode het besturingssysteem vertellen dat als system.exit() 0 retourneerde dan alles in orde was, maar als er niet iets mis is gegaan, dan kunnen daar enkele handlers voor zijn in het bovenliggende proces


Antwoord 9

Zoals anderen 0antwoorden, wat succes betekent, anders.

Als u bat-bestand (venster) gebruikt, heeft System.exit(x)effect.

Code java (mijnapp):

if (error < 2){
    help();
    System.exit(-1);    
}
else{
    doSomthing();
    System.exit(0);
}

}

bat-bestand:

java -jar myapp.jar
if %errorlevel% neq 0 exit /b %errorlevel%
rem -- next command if myapp is success --

Antwoord 10

Systeem.exit(0)
volgens afspraak geeft een statuscode nul een succesvolle beëindiging aan.

Systeem.exit(1)
-Het betekent dat beëindiging mislukt vanwege een fout


Antwoord 11

Kijk naar de onderstaande code

public static void main(String[] args) {
    **String s=null;**
    try {
        System.out.println("Exit");
        System.exit(1);
        **s.length();**
    }catch(Exception e) {
        System.out.println("Exception");
    }finally {
        System.out.println("finally");
    }}

Hier
exit(0): Over het algemeen gebruikt om een ​​succesvolle beëindiging aan te geven.
exit(1) of exit(-1)of een andere waarde die niet nul is Geeft over het algemeen een mislukte beëindiging aan.
Het maakt niet uit wat je als argument doorgeeft, de controlestroom komt altijd naar buiten en drukt daarna niets af, het kan een catch-blok zijn omdat s.lengthhier een uitzondering zal gooien of uiteindelijk


Antwoord 12

class calc{
public static void main(String args[])
{
    int a, b, c;
    char ch;
    do{
        Scanner s=new Scanner(System.in);
                System.out.print("1. Addition\n");
                System.out.print("2. Substraction\n");
                System.out.print("3. Multiplication\n");
                System.out.print("4. Division\n");
                System.out.print("5. Exit\n\n");
                System.out.print("Enter your choice : ");
                ch=s.next().charAt(0);
                    switch (ch)
                    {
                        case '1' :
                        Addition chose1=new Addition();
                        chose1.add();
                        break;
                        case '2' :
                        Substraction chose2=new Substraction();
                        chose2.sub();
                        break;
                        case '3' :
                        Multiplication chose3= new Multiplication();
                        chose3.multi();
                        break;
                        case '4' :
                        Division chose4=new Division();
                        chose4.divi();
                        break;
                        case '5' :
                        System.exit(0);
                        break;
                        default :
                        System.out.print("wrong choice!!!");
                        break;
                    }
        System.out.print("\n--------------------------\n");                     
    }while(ch !=5); 
}

}

In de bovenstaande code wanneer zijn System.exit(0); en wanneer ik op geval 5 druk, wordt het correct afgesloten, maar wanneer ik System.exit(1) gebruik; en druk op geval 5 het sluit af met een fout en opnieuw wanneer ik het met geval 15 probeer, wordt het goed afgesloten hierdoor kwam ik te weten dat, wanneer we ooit een int in het argument plaatsen, het specificeert dat, het het karakter van die positie neemt, dat wil zeggen als ik zet (4) dat betekent dat je het 5e teken van die tekenreeks moet nemen als het (3) is, dan betekent het dat je het vierde teken van die ingevoerde tekenreeks moet nemen

LEAVE A REPLY

Please enter your comment!
Please enter your name here

one × 3 =

Other episodes