在一次采访中,一个人力资源部问我这个问题“没有尝试就有阻止阻塞是有效的,我的程序会成功运行有一种方法可以做什么,那么该方法是什么?”
我可以在不使用try / finally块的情况下使用catch块吗? 请帮帮我!
答案 0 :(得分:8)
如果没有catch
,则无法try
阻止。
但是,try
和finally
块可能没有catch
。
更新(感谢@fabian抬头):
您也可以try with resources
,try
没有catch
和finally
阻止。
下面是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)
不,你不能。没有尝试做任何事情,你想要抓住哪个例外?说得通 ?。否。