오늘 원인과 해결방법을 찾아볼 자바 Exception은 java.net.MalformedURLException 다. 사실 워딩 그대로 잘못된 URL이 원인이고 URL을 맞게 고쳐주면 해결이 되는 아주 간단한 문제지만 좀 더 세부적으로 탐구해보기로 했다.
에러를 발생시키는 조건은 각종 프로토콜을 다루는 클래스에서 잘못된 인자로 정상적인 프로토콜을 인식할 수 없을 때 예외가 발생하도록 처리 되어있다.
대표적이고 많이 발생하는 클래스는 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에 해당하는 값을 찍어서 디버깅 해보자. 예외 메세지로도 왠만하면 확인할 수 있으니 로그를 살펴봐도 되고...
'dev > java' 카테고리의 다른 글
자바 AOP - AspectJ에 대해서 - Java AOP #5 (0) | 2021.02.16 |
---|---|
자바 AOP - 이제 CGLIB를 사용해봅시다 - Java AOP #4 (0) | 2021.02.16 |
자바 AOP - CGLIB에 사용되는 ASM을 알아보자 - Java AOP #3 (0) | 2021.02.16 |
자바 AOP - JDK Dynamic Proxy 사용해보기 - Java AOP #2 (0) | 2021.02.15 |
자바 개발자를 위한 이클립스 단축키 top 30 (4) | 2020.10.26 |
IllegalAccessError 원인과 예외/에러 해결 방법(java.lang.IllegalAccessError) (0) | 2020.01.12 |
NumberFormatException 원인과 에러/예외 해결 방법 (1) | 2020.01.12 |
RuntimeException란 무엇인가? (1) | 2020.01.10 |