暗号化されたクラスをロードする独自のローダークラスを作成しようとしています。
loader(ClassLoader paramClassLoader, File paramFile)
したがって、 を呼び出す構造もオーバーライドしますsuper(new URL[] { paramFile.toURI().toURL() }, paramClassLoader);
。
呼び出し「.toUrl()」は をスローする可能性があるMalformedURLException
ため、次のコードをコンパイルすると...
public class loader extends URLClassLoader {
public static void main(String[] args)throws Exception{
Object localObject =
new loader(loader.class.getClassLoader(),
new File(loader.class.getProtectionDomain().getCodeSource()
.getLocation().getPath())
);
(...)
}
private loader(ClassLoader paramClassLoader, File paramFile){
super(new URL[] { paramFile.toURI().toURL() }, paramClassLoader);
if (paramClassLoader == null)
throw new IllegalArgumentException("Error loading class");
}
}
エラー:
loader.java:123: error: unreported exception MalformedURLException; must be caught or declared to be thrown
super(new URL[] { paramFile.toURI().toURL() }, paramClassLoader);
この例外をキャッチするにはどうすればよいですか? 「スーパーへの呼び出しはコンストラクターの最初のステートメントでなければならない」ため、try-catch-block は使用できません。