gpt4 book ai didi

Java 通用异常

转载 作者:行者123 更新时间:2023-11-29 08:05:43 24 4
gpt4 key购买 nike

我正在处理 JaudioTagger API 来操作 MP3 文件,我必须一遍又一遍地重复以下异常......我正在考虑有一个通用的异常处理程序,我可以转发每个异常可能带有标志号和通用方法可能会通过不同的开关案例来处理它?是否可以 ?如果有人可以提供方法签名或调用方法,我将不胜感激

} catch (CannotReadException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (ReadOnlyFileException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvalidAudioFrameException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (TagException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
}

最佳答案

在 JDK 7 之前,您所能做的就是编写一个实用函数并从每个 catch block 中调用它:

private void handle(Exception ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
}

private void someOtherMethod() {
try {
// something that might throw
} catch (CannotReadException ex) {
handle(ex);
} catch (ReadOnlyFileException ex) {
handle(ex);
} catch (IOException ex) {
handle(ex);
} catch (InvalidAudioFrameException ex) {
handle(ex);
} catch (TagException ex) {
handle(ex);
}
}

从 JDK 7 开始,您可以使用 multi-catch:

private void someOtherMethod() {
try {
// something that might throw
} catch (CannotReadException | ReadOnlyFileException | IOException
| InvalidAudioFrameException | TagException ex) {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
}
}

参见“Catching multiple exceptions”。

关于Java 通用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com