/ / Java Compile Time Chyba: dosiahol koniec súboru pri analýze - java, compiler-construction, compilation, compiler-errors

Java Compile Time Chyba: dosiahol koniec súboru pri analýze - java, compiler-construction, compilation, compiler-errors

public class Test{
public static void main(String[] arg){
System.out.println("Alexander The Great");
}
}

V tomto kóde, ak odstránim prvú úvodzovku v reťazci, dostanem tri chyby. 1. ")" očakávané 2. neuzavretý reťazec doslovný 3. nie vyhlásenie

ok, rozumiem vyššie chybám.

Ak odstránim druhú úvodzovku v reťazci, taktiež dostanem tri chyby. 1. neuzavretý reťazec doslovný 2. ";" očakávaný 3. dosiahol koniec súboru počas analýzy

Rozumiem 1 a 2, ale prečo 3 ??

Nie je to zvyčajne, keď chýbajú zátvorky? Ale jasne, mám správny počet závor. Tiež prečo nie prvý prípad uvádza chybu "dosiahol koniec súboru pri analýze"?

PS: Používam jGrasp, java 1.6.

odpovede:

1 pre odpoveď č. 1

Odchod z funkcie najprv Citácia potenciálne dáva analyzátorovi trochu viacpracovať, pretože sa pokúsi zaobchádzať s odkazom "Alexander". Akonáhle zasiahne priestor, jediný právny materiál je zvyšok výrazu, ale namiesto toho si myslí, že je to ďalší identifikátor.

Môže to byť vloženie bonusu ) pokúsiť sa zotaviť sa; závisí od implementácie.

Odchod z poslednej cenovej ponuky odošle analyzátorna koniec riadku. Namiesto toho, aby sa snažil tento výrok zatvoriť, dostane trochu stratený a vypnutý a nemôže sa zotaviť a narazí na koniec súboru.

Z vrcholu mojej hlavy, pre mňa sa zdá, že odvtedyIringové reťazce sú iba jednorazové, môžu robiť to isté a pokúsiť sa uzavrieť reťazec a / alebo vyhlásenie v tomto prípade a zotaviť sa trošku elegantnejšie. Možno by som však chýbal niečo zrejmé.


0 pre odpoveď č. 2

Vzhľadom na to, že sa EOF stretol pri vyhľadávaní značky cenovej ponuky. Neviem, či sú presné chybové hlásenia, ktoré sa majú vyslať pre zlý kód, špecifikované alebo nie.


-1 pre odpoveď č. 3

použiť verejné statické neplatné hlavné (String arg []) namiesto verejného statického prázdneho hlavného reťazca (String [] arg)