在JUnit测试包中,我创建一个java.net.URL
对象,并将其用于各种assert语句中。但是,URL对象的构造函数将引发必须捕获的MalformedURLException。由于必须捕获该变量,因此必须将构造函数包装在try / catch中,这意味着您必须将变量放在try / catch之外的范围内。
示例代码:
URL ocURL = null;
try {ocURL = new URL("https://docs.oracle.com/javase/8/docs/api/java/net/URL.html");}
catch (MalformedURLException e) {}
assertEquals(variable, ocURL)
诚然,这完全是美观的:我不喜欢所有多余的代码,毫无意义。由于我将URL作为字符串传递,因此我知道它会很好,因此不会引发异常(尽管著名的遗言)。
有没有一种方法可以避免声明URL对象,然后在try / catch中对其进行初始化?有没有一种方法可以构建java.net.URL
对象而不必捕获(不存在)异常?
答案 0 :(得分:3)
相反,创建一个静态工厂方法并仅处理一次crlfDelay
:
try/catch