Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Nullpekarexception | Sträng
Java-Grunder

bookNullpekarexception

NPE

NullPointerException eller NPE är ett fel som varje Java-programmerare känner till. Detta fel innehar rekordet för att irritera programmerare.

Först ska vi förstå konceptet med värdet null för en strängvariabel. När vi skapar en strängvariabel men glömmer att initiera den, får den värdet null. Till skillnad från detta, om vi inte initierar en int-variabel, får den värdet 0.

Låt oss titta på ett exempel med en strängvariabel som har värdet null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Som du kan se är utdata på skärmen null, och koden verkar fungera. Men låt oss nu försöka använda någon metod med en variabel som har värdet null:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }

Vid försök att anropa en metod på en strängvariabel med värdet null erhålls ett NullPointerException.

Det kan verka som att detta fel inte är allvarligt, men senare, när du får värden som inte är skrivna av dig själv, kan du ofta stöta på det. Därför är det viktigt att förstå hur detta fel kan hanteras redan nu.

Sätt att undvika NPE:

  • Var uppmärksam. Om du skapar en strängvariabel, kontrollera noggrant att du har initierat den;
  • Använd en null-kontroll innan variabeln används, till exempel.
Main.java

Main.java

copy
123456789101112
package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Uppgift

Swipe to start coding

Du utvecklar ett system som hanterar anställdas e-postadresser.
Vissa e-postposter kan saknas (null).
Din uppgift är att validera och endast behandla icke-null och korrekt formaterade e-postadresser.

  1. Du får en array med anställdas e-postadresser.
  2. Iterera genom varje email i arrayen.
  3. För varje post:
    • Kontrollera att email inte är null
    • Och kontrollera att den innehåller @-symbolen
  4. Om båda villkoren är uppfyllda, skriv ut e-postadressen till konsolen.
  5. Annars, skriv ut:
    "Invalid or missing email"

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you show me an example of how to check for null before using a variable?

What are some other common causes of NullPointerException in Java?

Can you explain the difference between null and an empty string in Java?

close

bookNullpekarexception

Svep för att visa menyn

NPE

NullPointerException eller NPE är ett fel som varje Java-programmerare känner till. Detta fel innehar rekordet för att irritera programmerare.

Först ska vi förstå konceptet med värdet null för en strängvariabel. När vi skapar en strängvariabel men glömmer att initiera den, får den värdet null. Till skillnad från detta, om vi inte initierar en int-variabel, får den värdet 0.

Låt oss titta på ett exempel med en strängvariabel som har värdet null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Som du kan se är utdata på skärmen null, och koden verkar fungera. Men låt oss nu försöka använda någon metod med en variabel som har värdet null:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }

Vid försök att anropa en metod på en strängvariabel med värdet null erhålls ett NullPointerException.

Det kan verka som att detta fel inte är allvarligt, men senare, när du får värden som inte är skrivna av dig själv, kan du ofta stöta på det. Därför är det viktigt att förstå hur detta fel kan hanteras redan nu.

Sätt att undvika NPE:

  • Var uppmärksam. Om du skapar en strängvariabel, kontrollera noggrant att du har initierat den;
  • Använd en null-kontroll innan variabeln används, till exempel.
Main.java

Main.java

copy
123456789101112
package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Uppgift

Swipe to start coding

Du utvecklar ett system som hanterar anställdas e-postadresser.
Vissa e-postposter kan saknas (null).
Din uppgift är att validera och endast behandla icke-null och korrekt formaterade e-postadresser.

  1. Du får en array med anställdas e-postadresser.
  2. Iterera genom varje email i arrayen.
  3. För varje post:
    • Kontrollera att email inte är null
    • Och kontrollera att den innehåller @-symbolen
  4. Om båda villkoren är uppfyllda, skriv ut e-postadressen till konsolen.
  5. Annars, skriv ut:
    "Invalid or missing email"

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 5
single

single

some-alt