티스토리 뷰


오늘 원인과 해결방법을 찾아볼 자바 Exception은 java.net.MalformedURLException 다. 사실 워딩 그대로 잘못된 URL이 원인이고 URL을 맞게 고쳐주면 해결이 되는 아주 간단한 문제지만 좀 더 세부적으로 탐구해보기로 했다. 

 

java.net.MalformedURLException 원인 및 에러 해결 방법

 

에러를 발생시키는 조건은 각종 프로토콜을 다루는 클래스에서 잘못된 인자로 정상적인 프로토콜을 인식할 수 없을 때 예외가 발생하도록 처리 되어있다. 

 

대표적이고 많이 발생하는 클래스는 URL 이다. 

 

package exception;

import java.net.URL;

public class test_MalformedURLException {
	public static void main(String[] args) throws Throwable {
		URL url = new URL("file");		
	}
}

 

Exception in thread "main" java.net.MalformedURLException: no protocol: file
	at java.base/java.net.URL.<init>(URL.java:672)
	at java.base/java.net.URL.<init>(URL.java:568)
	at java.base/java.net.URL.<init>(URL.java:515)
	at exception.test_MalformedURLException.main(test_MalformedURLException.java:7)

 

정상적으로 동작 시키려면 file에 ':' 콜론만 붙여주면 된다. 

 

즉, 프로토콜을 인식하는 문자열들은 자바에서 지원하는 프로토콜 명칭에 ':' 콜론이 붙으면 되는 식이다. 

 

file:

http:

https:

 

이렇게 세가지 유형의 프로토콜이 아니라 다른 값이 온다면 해당 예외(exception)을 발생하는 것을 확인했다. 

 

'java.net.MalformedURLException'이 발생했다면 url에 해당하는 값을 찍어서 디버깅 해보자. 예외 메세지로도 왠만하면 확인할 수 있으니 로그를 살펴봐도 되고...


댓글
최근에 올라온 글
최근에 달린 댓글