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
0
wanneer de uitvoering goed verliep;1
,-1
,whatever != 0
wanneer 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-127
zijn door de gebruiker gedefinieerde codes (dus gegenereerd doorexit(n)
aan te roepen)128-255
zijn 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, 0
voor succesvolle uitvoeringen en 1
of 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 0
antwoorden, 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