java返回类型错误及错误处理

标签 java error-handling return-type

我是新手。一种方法有两个错误。请帮忙解决这些问题。

我正在使用多节点树制作文件系统。

此方法返回子目录中给定名称的文件/目录。循环后,如果没有这样的文件/目录,就会报错。

import java.util.ArrayList;
import java.util.Arrays;
import driver.exception.InvalidFileDirectoryException;

public class FileNode {

    private FileNode parent;
    private ArrayList<FileNode> children = new ArrayList<FileNode>();
    private String name;


    public FileNode getChild(String name) {   // This method must return a type of FileNode.
        for (int i = 0; i < children.size(); i++) {
                if (children.get(i).getName() == name) {
                    return children.get(i);
                }
                if ((i == children.size()-1) 
                    && (children.get(i).getName() != name)) {
                    throw new InvalidFileDirectoryException(
                        name + ": No such file or directory");   // Unhandled exception type InvalidFileDirectoryException
                }
        }
    }

我可以理解第一个错误。如果不存在这样的文件或目录,则此方法不会返回任何内容。但是,我想在这种情况下给出错误消息。我应该怎么办?请帮忙!

public class InvalidFileDirectoryException extends Exception {

    public InvalidFileDirectoryException() {
        super();
    }

    public InvalidFileDirectoryException(String message) {
        super(message);
    }
}

最佳答案

将您的 getChild 方法更改为:-

public FileNode getChild(String name) throws InvalidFileDirectoryException {
    for (int i = 0; i < children.size(); i++) {
        if (children.get(i).getName().equals(name)) {
            return children.get(i);
        }
    }
    throw new InvalidFileDirectoryException(name + ": No such file or directory");
}

这将扫描children集合。如果找到匹配项,则将从该方法返回子项。如果循环完成但未找到匹配项,则会抛出异常。请注意,方法签名显示抛出 InvalidFileDirectoryException

关于java返回类型错误及错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53038433/

相关文章:

Java: Unresolved 编译问题

java - 表中异常的 float

java - 使用 FieldInterceptor 问题的 Hibernate OneToOne 延迟加载

java - 使用 JTextfield 文本重复搜索 JTable

c++ - 错误处理理论?

c++ - 构造函数返回什么?

ajax - 如何在 Angular 中捕获 http 错误响应

debugging - Lua-执行return和or时出错

function - 如何从 Kotlin 中的函数返回具有不同类型(其中一个是数据类)的多个值?

c++ - 覆盖虚函数返回类型不同且不是协变的