没有尝试最终有阻塞块是否有效?

时间:2014-09-01 10:12:22

标签: java

在一次采访中,一个人力资源部问我这个问题“没有尝试就有阻止阻塞是有效的,我的程序会成功运行有一种方法可以做什么,那么该方法是什么?”

我可以在不使用try / finally块的情况下使用catch块吗? 请帮帮我!

2 个答案:

答案 0 :(得分:8)

如果没有catch,则无法try阻止。

但是,tryfinally块可能没有catch

更新(感谢@fabian抬头):

您也可以try with resourcestry没有catchfinally阻止。

下面是Oracle's document的定义:

try-with-resources语句是一个声明一个或多个资源的try语句。资源是在程序完成后必须关闭的对象。 try-with-resources语句确保在语句结束时关闭每个资源。任何实现java.lang.AutoCloseable的对象(包括实现java.io.Closeable的所有对象)都可以用作资源。

这是try-with-resources的示例代码:

// Open zip file and create output file with 
// try-with-resources statement

try (
    java.util.zip.ZipFile zf =
         new java.util.zip.ZipFile(zipFileName);
    java.io.BufferedWriter writer = 
        java.nio.file.Files.newBufferedWriter(outputFilePath, charset)
) {
    // Enumerate each entry
    for (java.util.Enumeration entries =
                            zf.entries(); entries.hasMoreElements();) {
        // Get the entry name and write it to the output file
        String newLine = System.getProperty("line.separator");
        String zipEntryName =
             ((java.util.zip.ZipEntry)entries.nextElement()).getName() +
             newLine;
        writer.write(zipEntryName, 0, zipEntryName.length());
    }

答案 1 :(得分:2)

不,你不能。没有尝试做任何事情,你想要抓住哪个例外?说得通 ?。否。