2016-12-21 6 views
0

У меня есть странная проблема, что я даже не могу определить логику, не говоря уже о том, как исправить. У меня есть приложение заставки, которое я пишу на NetBeans на Mac. Теперь я пытаюсь портировать код для работы на компьютере с Windows 10. Приложение запускается, но, похоже, выходит, не выбрасывая исключение, когда оно достигает точки, в которой выполняется буферизация изображения. Иногда он буферизует отлично, и все это AOK. Однако в других случаях он достигает bi = ImageIO.read(imageList[n]);, а затем NetBeans с радостью сообщает, что код завершен и завершен, как будто ничего не случилось.Приложение Java закрывается после BufferedImage без исключения исключения

  int done = 0; 
      BufferedImage bi = null; 
      while (done == 0) { 
       System.out.println("Entered loop"); 
       bi = ImageIO.read(imageList[n]); 
       if (bi == null) { 
        System.out.println("Image null"); 
       } else { 
        System.out.print("I tried to buffer but failed"); 
       } 
       int biw = bi.getWidth(); 
       System.out.println("Image width = " + biw); 
       if (bi != null) { 
        System.out.println("Image buffered"); 
        done = 1; 
       } 
       System.out.println("done=" + done); 
      } 

сообщения об ошибках, которые я пробовал установить, а именно "I've tried to buffer but failed" никогда не печатается, но "Entered loop", поэтому я могу быть довольно уверен, что отсев происходит в вышеупомянутой линии.

Любые идеи? Большое спасибо!

+0

Вы пытались отладить код? – ItamarG3

+0

Да - не кости. Что касается IDE, программа выполнила и вышла правильно. –

+0

Может быть, вы получите ошибку вместо исключения? (например, OutOfMemoryError). Или, если сбой во время выполнения Java, вы должны получить сбой сбоя. – Robert

ответ

0

Невозможно сказать, поскольку вы нарушили строгое правило: никогда не оставляйте блок catch пустым.

стандартный улов блок А должен печатать трассировку стека:

catch(Exception e) { 
    e.printStackTrace(); 
} 

Это должно дать вам достаточно намеков на ваш вопрос.

+0

Да, это не дает никаких результатов, извините. Никакого исключения, никаких объяснений! –

+0

Попробуйте поймать суперкласс класса Exception. ImageIO.read также выдает другие, непроверенные исключения. – Mordechai