Java >> Java tutorial >  >> Tag >> switch

Sådan slukker du java:variabel er muligvis ikke initialiseret

Fra javadoc af System.exit :

Afslutter den aktuelle Java Virtual Machine.

Din compiler ser ikke fremad for at finde ud af, at jvm'en vil lukke, og at programmet derfor vil afslutte.

Hvis du ændrer System.exit(1); med return; , vil compileren genkende, at du på dette tidspunkt vil returnere kontrolflowet til den kaldende metode. Da du er i main metoden for Main klasse af dit program, vil det også afslutte programmet. Først nu ved din compiler om det.

Du kan bruge følgende kode, men vær opmærksom på, at du ikke sender en status code 1 til dit operativsystem i dette tilfælde:

public static void main( String[  ] args ) {

try{
    final int begin = Integer.valueOf( args[ 1 ] );
    final int end = Integer.valueOf( args[ 2 ] );

    if( begin >= end ) {
        System.out.println( "Wrong arguments. (" + begin + " >= " + end + ")" );
        System.exit(1);
    }

} catch( NumberFormatException conversion_error ) {
    System.out.println( "Not A Number." );
    return;
}

System.out.print( "OK." );
System.exit(0);
}

Nej. Du kan ikke slukke den. Compileren insisterer på, at du ikke bruger uinitialiserede variabler. Det er en Java-regel.

Du skal rette din kode. Specifikt kode, der afhænger af succesen af ​​kode i en tidligere try blok skal være inde i den try blokere.


Java tag