我是新手。一种方法有两个错误。请帮忙解决这些问题。
我正在使用多节点树制作文件系统。
此方法返回子目录中给定名称的文件/目录。循环后,如果没有这样的文件/目录,就会报错。
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/