프로그래밍언어/Java
모듈간 의존성 참조 문제
codinglog
2023. 11. 14. 13:14
모듈 A, B, C가 있을 때 B는 C모듈을 의존해서 구현하고 A는 B모듈을 사용한다.
A가 B모듈 중 C에 존재하는 예외 클래스를 상속받아 재구현한 예외를 사용하려고 하면 참조 오류가 발생한다.throw
로 예외를 올렸을 때 오류가 발생하는데 일반 클래스 생성 및 사용은 문제가 없다.
그 이유를 모르겠어서 기록해놓는다.
module c
code
package c;
public class BaseException extends RuntimeException{
}
module b
gradle
implementation project(':module-c')
code
package b;
import c.BaseException;
public class SubBaseException extends BaseException {
}
module a
gradle
implementation project(':module-b')
code
package a;
import b.SubBaseException;
public class Main {
public static void main(String[] args) {
throw new SubBaseException();
}
}
result
throw new SubBaseException();
^
class file for c.BaseException not found
but
SubBaseException f = new SubBaseException();
Compile time OK. But throw f
still exception occur.
Why?
반응형