有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是捕获大多数try-catch语句的一种方法

在我的UI java测试框架中,我有很多方法可以尝试捕捉元素操作,比如单击、发送键等,当操作成功时返回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;
    }

我确实尝试过创建一个actions类,并为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;
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    你可以这样做

    public boolean executeSafely(Runnable action) {
        try {
            action.run();
            return true;
        } catch (Exception x) {
            return false;
       } 
    }
    

    然后用return executeSafely(element::click)来调用它