我想做
public class Settings
{
static final URL logo = new URL("http://www.example.com/pic.jpg");
// and other static final stuff...
}
但我被告知我需要处理MalformedURLException
。规范说MalformedURLException
是
抛出表示发生格式错误的网址。要么在规范字符串中找不到合法的协议,要么无法解析字符串。
现在,我知道我提供的URL没有格式错误,所以我宁愿不处理我知道不会发生的异常。
无论如何都要避免不必要的try-catch-block堵塞我的源代码?
答案 0 :(得分:12)
最短的答案是否定的。但您可以创建一个静态实用程序方法来为您创建URL。
private static URL safeURL(String urlText) {
try {
return new URL(urlText);
} catch (MalformedURLException e) {
// Ok, so this should not have happened
throw new IllegalArgumentException("Invalid URL " + urlText, e);
}
}
如果你需要从几个地方做这样的事情,你应该把它放在一个实用工具类中。
答案 1 :(得分:4)
尝试以下方法:
public class Settings
{
static final URL logo;
static
{
try
{
logo = new URL("http://www.example.com/pic.jpg");
}
catch (MalformedURLException e)
{
throw new IllegalStateException("Invalid URL", e);
}
}
// and other static final stuff...
}