我可以将Eclipse设置为忽略"未处理的异常类型"

Cha*_*ixy 6 java eclipse compiler-errors unhandled-exception

是否有可能让Eclipse忽略错误"未处理的异常类型"?

在我的具体情况下,原因是我已经检查过该文件是否存在.因此,我认为没有理由加入try catch语句.

file = new File(filePath);
if(file.exists()) {         
    FileInputStream fileStream = openFileInput(filePath);           
    if (fileStream != null) {
Run Code Online (Sandbox Code Playgroud)

或者我错过了什么?

Jon*_*eet 7

是否有可能让Eclipse忽略错误"Unhandled exception type FileNotFoundException".

不会.这将是无效的Java,Eclipse不允许您更改语言规则.(你有时可以尝试运行不能编译的代码,但它不会做你想要的.你会发现UnresolvedCompilationError当执行到达无效代码时会抛出它.)

另请注意,仅仅因为调用时文件存在file.exists()并不意味着当您尝试稍后打开它时它仍然存在.它可能在此期间被删除.

可以做的是编写自己的方法来打开文件,如果文件不存在则抛出未经检查的异常(因为您对它有信心):

public static FileInputStream openUnchecked(File file) {
    try {
        return new FileInputStream(file);
    } catch (FileNotFoundException e) {
        // Just wrap the exception in an unchecked one.
        throw new RuntimeException(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,"unchecked"在这里并不意味着"没有检查" - 它只是意味着抛出的唯一异常将是未经检查的异常.如果你找到一个更有用的不同名称,那就去吧:)

  • @ChaosPixy我听到了您的想法,但是极不可能!=不可能,尤其是在线程应用程序中,并且尝试捕获只会导致懒惰的低效率程序员产生懒惰的低效率代码!;)我的代码中的异常,或者至少是我争取的异常,仅在某些事情发生在我无法控制的范围内时才使用。与Java辩论相比,ObjectiveC方法(在我看来,就像您所看到的Java方法一样令人讨厌)与Java的争论可能激怒了很多页面!PS。Downvote很傻,所以我取消了,然后又取消了。 (2认同)

piz*_*Guy 5

声明它throws Exception 或者最后尝试一下 bolok