如何返回值和异常(如果存在)



我有一个辅助类,我在其中编写了这个函数。

public static String createProject(Map<String, String> params,String projectName, String projectPrefix) {
        String createdProject = null;
        try {
             createdProject=//logic for creating createdProject string which may throw two exception mentioned below
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (TestLinkAPIException t) {
        t.printStackTrace();
    }
    return createdProject;
}

现在我从GUI部分调用这个函数,我已经写了

String createProject=//called above function.
如果上面的代码中出现错误,我想向用户显示错误。我的问题是我如何得到返回创建的字符串和错误消息,如果一些异常发生
  1. 创建自定义异常

  2. 添加String值作为自定义异常的实例字段

  3. 抛出带有传入String值的自定义异常

现在你有了异常和字符串

如果你有Java 7,那么你可以使用Multi-Catch异常块。

public static String createProject(Map<String, String> params,String projectName, String projectPrefix) throws Exception {
    String createdProject = null;
    try {
        createdProject=//logic for creating createdProject string which may throw two exception mentioned below
    } catch (MalformedURLException | TestLinkAPIException e) {
        e.printStackTrace();
        throw new Exception("Error creating createdProject", e);
    }
    return createdProject;
}

如果发生异常,则永远不会设置createdProject。

你应该从这个方法中抛出异常,并在调用这个方法的块中捕获它。

public static String createProject(Map<String, String> params,String projectName, String projectPrefix) throws Exception {
    String createdProject = null;
    try {
        createdProject = doSomething();
    } catch (Exception e) {
        throw new Exception("Error creating Project");
    }
    return createdProject;
}

在你调用这个方法的地方你会得到这样的东西

try {
    String str = createProject();
    displayTheProjectCreated(str);
} catch (Exception e) {
    // Oops something went wrong
    displayErrorMessage(e);
}

最新更新