有没有办法压缩Java Try Catch Blocks?

时间:2015-07-22 05:52:37

标签: java try-catch

经过一些快速研究后,我找不到任何部分因为我不确定我是否正在寻找正确的事情,部分是因为我认为没有。

但是,让我知道是否有办法可以浓缩这一点。此外,我是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);
    }
});

2 个答案:

答案 0 :(得分:11)

您可以使用Multi-Catch(最小JDK 7): 只需使用|符号分隔Exception-Classes

即可
try {
    someMethod();
} catch (IOException | SQLException e) {
    e.printStackTrace();
}

答案 1 :(得分: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);
}