File文件如何报空指针异常

img


我这里把 if (files==null) return;注释掉,然后传入null,会报空指针异常
但是我传入files的情况下如何才能报空指针异常?


 public static void main(String[] args) {
        File file=new File("D:\\idea");
        File[] files = file.listFiles();
        if (file.exists()){
            System.out.println(file.getName()+"\\");
            Output(files);
            Output(null);
        }else {
            System.out.println("文件不存在");
        }
    }
    static void Output(File[] files) {
        if (files==null) return;
        for (File file:files
             ) {
            if (file.isDirectory()){
                System.out.println("  "+file.getName()+"\\");
                Output(file.listFiles());
            }else if (file.isFile()){
                System.out.println("\t"+file.getName());
            }
        }
    }

对象为空就会报空指针异常。
当传入null时,遍历就会报空指针异常了。

for (File file:files)

什么意思,你想强行报空指针异常?
那你可以自己throw一个
Java 使用 throw 抛出异常_黑白灰的博客-CSDN博客_java throw 程序出现错误后,系统会自动抛出异常;此外,Java 也允许程序自行抛出异常,自行抛出异常使用 throw 语句来完成。本文包含:抛出异常自定义异常类catch 和 throw 同时使用Java 7 增强的throw 语句异常链1. 抛出异常如果需要在程序中自行抛出异常,则应使用 throw 语句,throw 语句可以单独使用,throw 语句抛出的不是异常类,而是一个异常实例,... https://blog.csdn.net/weixin_43819113/article/details/91468459

不空就不会报异常,除非你自己抛个异常出来

file.exists() 都已经判断文件是否存在 怎么 抛异常