gpt4 book ai didi

java - 重构java中的异常代码

转载 作者:行者123 更新时间:2023-12-02 04:20:00 24 4
gpt4 key购买 nike

我正在编写应该为两个不同的事物抛出相同异常的代码,并且我不想将 throws Exception 与 getIsbnNumber() 方法一起使用。

有没有办法重构代码?

public void getIsbnNumber()
{
try
{
value = new URN("urn:isbn:12345");
if (value.getSecondElement() != "isbn")
{
//throws the urn same exception
}
}
catch(URNException exception)
{
//throws the urn same exception
}
return value.getThirdElement(); // return 12345
}

最佳答案

我认为这里没有什么需要修复的。例如,在使用 IO 时,您可以经常发现这一点。这样的代码是不是很眼熟?

BufferedWriter bw = null;
try {
bw = openWriter();
doStuff();
} catch (IOException e) {
handleError();
} finally {
try {
if (bw != null) bw.close();
} catch (IOException e) {
// do nothing, or print stacktrace
}
}

在 IO 的特定情况下,您可以使用更好、更安全的 Java 构造,即 try-with-resources :

// this will close bw no matter what
try (BufferedWriter bw = openWriter()) {
doStuff();
} catch (IOException e) {
handleError();
}

如果您正在使用资源,请将它们设为CloseableAutoCloseable 并使用它。否则,除了双重try-catch之外,你别无选择。请向我们提供更多详细信息,以便获得更好的答案。

关于java - 重构java中的异常代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894249/

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