捕获大多数try catch语句的一种方法
One method to capture most of the try catch statements
在我的 UI java 测试框架中,我有很多方法正在尝试捕获元素操作,例如单击、发送键等,当操作成功时 return true 和发生任何异常时为 false。我想知道是否有任何更聪明的方法将方法作为参数传递,并且在该方法中用 try catch 语句包围该代码。这样代码可以更简单、更清晰地阅读(可能是 Java 8 个功能接口)。
public boolean expandPanel(String panelHeading) {
boolean panelFound = false;
try {
getElement(PanelHeadings.fromString(panelHeading)).click();
panelFound = true;
} catch (Exception e) {
panelFound = false;
}
return panelFound;
}
我确实尝试创建一个动作 class 并为 click、sendKeys 等定义不同的方法。但是有没有一种方法可以让我只使用一个 try catch 方法并将代码或行为传递给该方法。
public boolean expandPanel(String panelHeading) {
return actions.click(getElement(PanelHeadings.fromString(panelHeading)));
}
public class WebElementActions {
public Boolean click(WebElement element) {
try {
element.click();
return true;
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
}
你可以这样做
public boolean executeSafely(Runnable action) {
try {
action.run();
return true;
} catch (Exception x) {
return false;
}
}
然后用return executeSafely(element::click)
调用它。
在我的 UI java 测试框架中,我有很多方法正在尝试捕获元素操作,例如单击、发送键等,当操作成功时 return true 和发生任何异常时为 false。我想知道是否有任何更聪明的方法将方法作为参数传递,并且在该方法中用 try catch 语句包围该代码。这样代码可以更简单、更清晰地阅读(可能是 Java 8 个功能接口)。
public boolean expandPanel(String panelHeading) {
boolean panelFound = false;
try {
getElement(PanelHeadings.fromString(panelHeading)).click();
panelFound = true;
} catch (Exception e) {
panelFound = false;
}
return panelFound;
}
我确实尝试创建一个动作 class 并为 click、sendKeys 等定义不同的方法。但是有没有一种方法可以让我只使用一个 try catch 方法并将代码或行为传递给该方法。
public boolean expandPanel(String panelHeading) {
return actions.click(getElement(PanelHeadings.fromString(panelHeading)));
}
public class WebElementActions {
public Boolean click(WebElement element) {
try {
element.click();
return true;
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
}
你可以这样做
public boolean executeSafely(Runnable action) {
try {
action.run();
return true;
} catch (Exception x) {
return false;
}
}
然后用return executeSafely(element::click)
调用它。