Tänk på följande segment av Java kod, lagrad i en fil som heter JollyMessage.java:
// Ett lyckligt meddelande skrivs till skärmen!
klass Jollymessage
{
public static void main (String [] args) {
// Skriv meddelandet till terminalfönstret
System.out.println ("Ho Ho Ho!");
}
}
Vid programkörning kommer denna kod att producera ett felmeddelande om körning. Med andra ord har ett misstag gjorts någonstans, men felet kommer inte att identifieras när programmet är sammanställt, bara när det är springa.
felsökning
I exemplet ovan, märker att klassen kallas "Jollymessage" medan filnamnet heter JollyMessage.java.
Java är skiftlägeskänsligt. Kompilatorn klagar inte eftersom det tekniskt inte är fel med koden. Det kommer att skapa en klassfil som matchar klassnamnet exakt (dvs Jollymessage.class). När du kör programmet som heter JollyMessage får du ett felmeddelande eftersom det inte finns någon fil som heter JollyMessage.class.
Det fel du får när du kör ett program med fel namn är:
Undantag i tråd “main” java.lang. NoClassDefFoundError: JollyMessage (fel namn: JollyMessage)..
Vanliga lösningar med Runtime-Error
Om ditt program kompileras framgångsrikt men misslyckas vid körning, granska din kod för vanliga misstag:
- Oöverträffade enda och dubbla citat
- Saknade citat för strängar
- Felaktiga jämförelseoperatörer (t.ex. att inte använda dubbla lika tecken för att indikera tilldelning)
- Hänvisa till objekt som inte finns eller inte finns med hjälp av de stora bokstäverna i koden
- Referera till ett objekt som inte har några egenskaper
Att arbeta inom integrerade utvecklingsmiljöer som Eclipse kan hjälpa dig att undvika "typo" -stilsfel.
För att felsöka produktionsbaserade Java-program, kör din webbläsares felsökare - du bör se ett hexadecimalt felmeddelande som kan hjälpa till att isolera den specifika orsaken till problemet.
I vissa situationer kan problemet inte ligga i din kod, utan i din Java Virtual Machine. Om JVM kvävs kan det starta ett runtime-fel trots bristen på brist i programmets kodbas. Ett webbläsarfelsökningsmeddelande hjälper till att isolera koden orsakade av JVM-orsakade fel.