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

Java 如何返回值和异常(如果存在),java,exception,Java,Exception,我有一个助手类,我在其中编写了这个函数 public static String createProject(Map<String, String> params,String projectName, String projectPrefix) { String createdProject = null; try { createdProject=//logic for creating createdProject st

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

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;
}
现在,如果上述代码中出现错误,我想向用户显示错误。 我的问题是,如果出现一些异常,如何返回创建的字符串和错误消息

  • 创建自定义异常

  • 将字符串值添加为该自定义异常的实例字段

  • 使用传入的字符串值引发自定义异常


  • 现在您有了异常和字符串。

    如果您有Java 7,那么您可以使用block

    publicstaticstringcreateproject(映射参数、stringprojectname、stringprojectprefix)引发异常{
    字符串createdProject=null;
    试一试{
    createdProject=//用于创建createdProject字符串的逻辑,该字符串可能引发下面提到的两个异常
    }捕获(格式错误的异常| TestLinkApie异常){
    e、 printStackTrace();
    抛出新异常(“创建createdProject时出错”,e);
    }
    返回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;
    }
    

    “错误消息”的含义是什么?假设发生了一些异常,我想向无法像这样连接的用户显示,但如果没有任何异常发生,我想获得成功创建的字符串值。如果在创建
    createdProject
    时出现异常,您将如何发送该值。无论如何,它将是
    null
    。如果成功创建了
    createdProject
    ,则不会出现任何异常,该值将正常返回。我真的不知道在异常情况下如何返回值。是RJ,如果发生异常,我看到用户返回空值,如您所说。字符串值已成功执行,请尝试返回createdProject的块;如何获取此消息请帮助亲爱的@abimaran假设发生了一些异常..我将获取空值..因此在这种情况下,我希望使用一些消息如果没有异常,您可以按原样传递字符串值。否则,在自定义异常中添加字符串消息并将其抛出给调用者。it java 6..在这种情况下我该怎么办?为什么不能?使用新的语言功能来解决您的问题?OP很可能不幸处于不允许升级的情况。一些企业仍然使用Java 5/6…@user3580294它与OP有什么关系?如果一些企业使用1.4,但代码无法编译。因为这可能就是OP无法升级的原因?
    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;
    }
    
    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);
    }