2015-07-22 3 views
1

После небольшого исследования я не мог найти ничего отчасти потому, что не уверен, что я искал правильную вещь и отчасти потому, что не думаю, что есть.Есть ли способ сконденсировать Java Try Catch Blocks?

Однако, дайте мне знать, если есть способ, которым я мог бы конденсировать это. Кроме того, я новичок в Java, и если вы могли бы объяснить свои изменения и что он делает в простых выражениях, это тоже было бы здорово!

try { 
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager 
      .getInstalledLookAndFeels()) { 
     if ("Nimbus".equals(info.getName())) { 
      javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 
} catch (ClassNotFoundException ex) { 
    java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(
      java.util.logging.Level.SEVERE, null, ex); 
} catch (InstantiationException ex) { 
    java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(
      java.util.logging.Level.SEVERE, null, ex); 
} catch (IllegalAccessException ex) { 
    java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(
      java.util.logging.Level.SEVERE, null, ex); 
} catch (javax.swing.UnsupportedLookAndFeelException ex) { 
    java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(
      java.util.logging.Level.SEVERE, null, ex); 
} 

java.awt.EventQueue.invokeLater(new Runnable() { 
    public void run() { 
     new GameOfLife().setVisible(true); 
    } 
}); 

ответ

11

Вы можете использовать Multi-Выгоду (мин JDK 7): Просто используйте | знак отделить Exception-классы

try { 
    someMethod(); 
} catch (IOException | SQLException e) { 
    e.printStackTrace(); 
} 
+0

Вы также можете уловить общий родительский элемент всех этих исключений 'catch (Exception e)'. Но остерегайтесь использовать это, поскольку он также поймает те, которые вы, возможно, не захотите. – Codebender

1

Поскольку это, кажется, не является критической ошибкой (ваша программа может продолжаться) - Может быть, вы можете поймать все исключения в своем блоке catch. Что-то вроде:

try { 
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager 
     .getInstalledLookAndFeels()) { 
     if ("Nimbus".equals(info.getName())) { 
      javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 
} catch (Exception ex) { 
    java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(
     java.util.logging.Level.SEVERE, null, ex); 
} 
Смежные вопросы