Java 14 – Więcej informacji przy NullPointerException

Java w wersji 14 daje możliwość uruchomienia rozszerzonych informacji o znanym i lubianym NullPointerException.

Standardowo, gdy odpalimy taki kawałek kodu:

    public static void main(String[] args) {
        howLong(null);
    }
    
    private static int howLong(String s) {
        return s.length();
    }

Dostaniemy taki oto wyjątek:

Exception in thread "main" java.lang.NullPointerException
	at NPEEx.howLong(NPEEx.java:12)
	at NPEEx.main(NPEEx.java:5)

Natomiast, gdy uruchomimy naszą aplikację z dodatkowym argumentem dla Virtual Machine

-XX:+ShowCodeDetailsInExceptionMessages

Dostaniemy już nieco więcej informacji

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "s" is null
	at NPEEx.howLong(NPEEx.java:8)
	at NPEEx.main(NPEEx.java:4)

I o ile w powyższym, prymitywnym przykładzie to nie potrzebujemy pomocy to, gdy mamy do czynienia z typowym anty-patternem “train wreck”:

person.getContactInfo().getAddress().getStreet()

To już dobrze wiedzieć co konkretnie się popsuło. Wówczas dostaniemy taką informację:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Address.getStreet()" because the return value of "ContactInfo.getAddress()" is null
	at NPEEx.main(NPEEx.java:5)

W IntelliJ możemy dodać argument do wirtualnej maszyny w menu Run -> Edit Configurations -> VM Options.

By być na bieżąco i mieć realny wpływ na tematykę tworzonych przeze mnie artykułów zapraszam do dołączenia do mojego newslettera.

Java od Zera – Addendum – Java 11. Płatna czy darmowa?

Wraz z wersją Javy o numerku 11 nastał pewien chaos i zamieszanie. Mianowicie zmieniły się licencje i pojawiło się pytanie – Java 11 płatna czy darmowa? Skorzystam z okazji i wyjaśnię pewne rzeczy, bo takie akcje mogą tylko zaszkodzić osobom Javy dopiero się uczącym.

UWAGA! Kurs darmowy, zaktualizowany na stan z roku 2020 dostępny na https://kursy.clockworkjava.pl/java-fundamenty-programowania/

Czytaj dalej Java od Zera – Addendum – Java 11. Płatna czy darmowa?

Java – Od zera do aplikacji desktopowej. Część 6. Wprowadzenie do metod

Po wprowadzeniu podstaw klas i zmiennych nadszedł czas na ostatni z podstawowych klocków, które składają się na program – metody, zwane również funkcjami (a przynajmniej na poziomie podstawowym można śmiało te dwie nazwy stosować naprzemiennie). Na tapetę bierzemy, więc linijkę public static void main(String[] args)

UWAGA! Kurs darmowy, zaktualizowany na stan z roku 2020 dostępny na https://kursy.clockworkjava.pl/java-fundamenty-programowania/ Czytaj dalej Java – Od zera do aplikacji desktopowej. Część 6. Wprowadzenie do metod

Wzorzec Strategii – solo, spring i java 8

Jeśli framework Spring znajduje się na Twojej liście rzeczy do poznania 🙂 polecam swój kurs – “Spring Framework od podstaw” gdzie od zera tworzymy projekt Spring Boot i przechodzimy przez podstawowe funkcjonalności tego frameworka.

Kurs Spring Framework od podstaw

Natomiast jeśli to Wzorce Projektowe są kawałkiem programistycznego know-how, których chcesz lepiej poznać, zapraszam do zapoznania się z moim kursem Wzorce Projektowe, dostępnym na platformie Udemy.

Obrazek kursu link http://www.udemy.com/wzorce-projektowe/?couponCode=CLOCKWORK