为什么编译器会提供此异常

zey*_*nep -6 java guava

我想检查一个文件是否存在.为此,我有usedPreconditions.checkArgument() 方法的File.exists() 方法.但是,编译器给出了IllegalArgumentException.为什么编译器会提供此异常?

File fileIn = new File(filename); 
Preconditions.checkArgument( fileIn.exists() != false );
Run Code Online (Sandbox Code Playgroud)

rad*_*dar 5

首先,有几点需要注意.首先,编译器不提供异常,它们会给出编译错误 - 您遇到的是运行时,而不是编译时.第二,fileIn.exists() != false相当于fileIn.exists(),更容易阅读.

您收到的实际问题是因为您的条件是错误的 - 这意味着在您的情况下该文件不存在.除非您发布更多代码,否则我们无法提供更多帮助,但这是非常不言自明的.请参阅此处的checkArgument()方法文档