在Java中捕获块​​变量警告

She*_*dan 13 java

我尝试将我的代码编译成没有错误,没有警告作为标准做法.但是,有一个恼人的警告,我知道如何处理.NET而不是Java.说我有这样的代码块:

    try {
        FileInputStream in = new FileInputStream(filename);
        return new Scanner(in).useDelimiter("\\A").next();
    } catch (FileNotFoundException ex) {
        LOG.log(Level.SEVERE, "Unable to load file: {0}", filename);
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个警告,ex即没有使用变量.现在,我真的没有用ex,我不想ex,但我不知道该怎么做.在.NET中,我可以做到:

catch (FileNotFoundException)
Run Code Online (Sandbox Code Playgroud)

没有变量,它将编译并运行没有错误.

如何在Java中处理这种情况?我知道我可以创建一个局部变量并将其设置为ex,但这似乎是一个愚蠢和浪费的解决方法来修复一个不是真正需要的警告.

cad*_*ian 12

记录异常.在追逐bug时总是很有用.

  • 非常同意,帮自己一个忙,`LOG.log(Level.SEVERE,"无法加载文件:"+ filename,ex);`. (3认同)

Joa*_*uer 7

ex除了使用它之外,Java中没有"标记为已使用"的简洁方法.

但请注意,根据其文件一个FileNotFoundException也可以抛出时,"[...]文件确实存在,但由于某种原因无法访问,例如,当试图打开一个只读文件进行写操作."

因此,我建议你的也异常打印信息使用异常.

我知道这并没有回答一般性的问题,但我几乎没有想到一个例外,当它发生时我至少不会记录一些信息.