Есть ли способ, которым я мог бы игнорировать java.lang.NoClassDefFoundError, например try catch, где он называет отсутствующий класс? Мне не нужно исправлять недостающие классы, потому что это часть моей программы.Обрабатывать «NoClassDefFoundError»?
ответ
Мне не нужно исправлять недостающие классы, потому что это часть моей программы.
Я не совсем уверен, что вы пытаетесь достичь здесь, но вы должны быть в состоянии catch
NoClassDefFoundError
, чтобы предотвратить вашу JVM от сбоев. Пусть A
будет классом, который имеет- ссылка на B
. Если B.class
не доступен во время выполнения, вы можете обрабатывать NoClassDefFoundError
следующим образом:
class C {
public static void main(String args[]) {
try {
A a = new A();
} catch (NoClassDefFoundError e) {
//log the error or take some action
}
System.out.println("All good here, lets continue");
}
}
Неясно, как это скомпилируется, если класс 'A' не определен –
@ cricket_007 Я не полностью следую. Я, кажется, не упоминаю, что класс 'A' не определен в моем ответе. Вы имели в виду 'B.class'? – CKing
Возможно, да. Я, должно быть, пропустил объяснение –
Можете ли вы поделиться какой-либо код с нами? –
'NoClassDefFoundError' появляется, когда класс недоступен во время выполнения в пути к классам. Если его нет, то как вы можете ожидать, что он вызовет недостающий класс. – BeginnersSake
@BeginnersSake Нет, я хочу, чтобы код продолжал идти, а не останавливаться/сбой, я просто хочу, чтобы он проигнорировал код, где он называет отсутствующий клас – WilliamTaco