JAVA로 게임을 만드는 예제를 따라해서 만들어보던 중

위의 에러에 만나서 구글로 해결을 해보려 했지만 모든 방법을 따라해보아도 해결이 되지 않았다.

나왔던 에러의 전문은 다음과 같다

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null
	at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:234)
	at Dynamic_Beat/dynamic_beat_2.DynamicBeat.<init>(DynamicBeat.java:25)
	at Dynamic_Beat/dynamic_beat_2.Main.main(Main.java:10)

찾아본 결과로 미루어 봤을 때 위의 문구는

1. 파일의 경로를 잘못 설정하거나,

2. 파일 링크가 되지 않는 상태이거나(연결시켜야 하는 파일 이름과 동일하지 않을 경우)

3. 혹은 같은 이름의 다른 경로의 파일을 연결 시키거나 혼동할 경우에 발생할 수 있는 에러라고 파악했다.

위의 조건만으로는 에러가 해결되지 않아 좀 더 찾아보다가 발견한 점이 있다.

https://ko.myservername.com/what-is-nullpointerexception-java-how-avoid-it

 

Java에서 NullPointerException이란 무엇이며 그것을 피하는 방법 - 다른

이 튜토리얼은 우리가 최소한 예상 할 때 나타날 수있는 Java의 NullPointerException에 대한 모든 것을 설명합니다. 또한이를 피하는 방법에 대해서도 논의 할 것입니다.

ko.myservername.com

위의 블로그에서 도움을 많이 얻었다.

결국 위에 있던 내용도 아니었지만 좋은 공부가 되었다.

결국 java.lang.NullPointerException는 런타임에러인 것인데

문맥적으로는 문제가 없지만 에러가 나는 상황을 의미한다.

여기에서 내가 점검하지 못했던 점까지 생각이 거슬러 올라갔다.

강의의 시점이 2017년이었던 점을 생각을 못했어서 JAVA JDK 버전을 맞추고 진행을 하니 오류가 사라졌다.

오늘은 JAVA에서 런타임 오류가 날 수 있는 경우의 수에 대해서 하나 더 알 수 있었고,

그 오류의 처리 방법에 대해서도 공부해볼 수 있었다.

+ Recent posts