The Java Tutorials have been written for JDK 8.Java教程是为JDK 8编写的。Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.本页中描述的示例和实践没有利用后续版本中引入的改进,并且可能使用不再可用的技术。See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.有关Java SE 9及其后续版本中更新的语言特性的摘要,请参阅Java语言更改。
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.有关所有JDK版本的新功能、增强功能以及已删除或不推荐的选项的信息,请参阅JDK发行说明。
try { } finally { }
try
statement does not have to have a catch
block if it has a finally
block. If the code in the try
statement has multiple exit points and no associated catch
clauses, the code in the finally
block is executed no matter how the try
block is exited. Thus it makes sense to provide a finally
block whenever there is code that must always be executed. This include resource recovery code, such as the code to close I/O streams.catch (Exception e) { }
Answer: This handler catches exceptions of type Exception
; therefore, it catches any exception. This can be a poor implementation because you are losing valuable information about the type of exception being thrown and making your code less efficient. As a result, your program may be forced to determine the type of exception before it can decide on the best recovery strategy.
try { } catch (Exception e) { } catch (ArithmeticException a) { }
Exception
; therefore, it catches any exception, including ArithmeticException
. The second handler could never be reached. This code will not compile.int[] A;
A[0] = 0;
classes.zip
or rt.jar
.)end of stream
marker.end of stream
marker, a program tries to read the stream again.Answer:
readList
method to ListOfNumbers.java
. This method should read in int
values from a file, print each value, and append them to the end of the vector. You should catch all appropriate errors. You will also need a text file containing numbers to read in. Answer: See
.ListOfNumbers2.java
cat
method so that it will compile:
public static void cat(File file) { RandomAccessFile input = null; String line = null; try { input = new RandomAccessFile(file, "r"); while ((line = input.readLine()) != null) { System.out.println(line); } return; } finally { if (input != null) { input.close(); } } }
Answer: The code to catch exceptions is shown in bold:
public static void cat(File file) { RandomAccessFile input = null; String line = null; try { input = new RandomAccessFile(file, "r"); while ((line = input.readLine()) != null) { System.out.println(line); } return; } catch(FileNotFoundException fnf) { System.err.format("File: %s not found%n", file); } catch(IOException e) { System.err.println(e.toString()); } finally { if (input != null) { try { input.close(); } catch(IOException io) { } } } }