2017-02-18 28 views
1

Есть ли способ, которым я мог бы игнорировать java.lang.NoClassDefFoundError, например try catch, где он называет отсутствующий класс? Мне не нужно исправлять недостающие классы, потому что это часть моей программы.Обрабатывать «NoClassDefFoundError»?

+0

Можете ли вы поделиться какой-либо код с нами? –

+0

'NoClassDefFoundError' появляется, когда класс недоступен во время выполнения в пути к классам. Если его нет, то как вы можете ожидать, что он вызовет недостающий класс. – BeginnersSake

+0

@BeginnersSake Нет, я хочу, чтобы код продолжал идти, а не останавливаться/сбой, я просто хочу, чтобы он проигнорировал код, где он называет отсутствующий клас – WilliamTaco

ответ

2

Мне не нужно исправлять недостающие классы, потому что это часть моей программы.

Я не совсем уверен, что вы пытаетесь достичь здесь, но вы должны быть в состоянии catchNoClassDefFoundError, чтобы предотвратить вашу 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"); 
    } 
} 
+0

Неясно, как это скомпилируется, если класс 'A' не определен –

+1

@ cricket_007 Я не полностью следую. Я, кажется, не упоминаю, что класс 'A' не определен в моем ответе. Вы имели в виду 'B.class'? – CKing

+0

Возможно, да. Я, должно быть, пропустил объяснение –