当方法执行出现问题时,方法就会创建异常对象并抛出。开发者可以在程序中自行抛出异常;JVM 在执行程序时发现问题也会自动抛出异常。
class TestException{
// 把方法中的抛出异常交给上层处理
public void writeList(int size) throws IndexOutOfBoundsException, IOException{
PrintWriter out = null;
// 用户自定义异常并抛出
if(size < 1) throw new IndexOutOfBoundsException("至少要输出1个字符");
try{
// 虚拟机自动发现异常也会抛出,必须出现在 try 代码块中
out = new PrintWriter(new FileWriter(txt));
for (int i = 0; i < size; i++)
System.out.println("Value at: " + i + " = " + list.get(i));
}finally{
if (out != null) out.close();
}
}
}Copy to clipboardErrorCopied
当方法执行抛出异常时,必须由专门的代码块对异常进行处理。
注意事项
Java 7 后在 try 语句中打开 IO 流,会在跳出后自动关闭流。不必再用 finally 语句关闭。
class TestException{
public void writeList(int size) {
PrintWriter out = null;
try {
if(size < 1) throw new IndexOutOfBoundsException("至少要输出1个字符");
out = new PrintWriter(new FileWriter("OutFile.txt"));
for (int i = 0; i < size; i++)
System.out.println("Value at: " + i + " = " + list.get(i));
} catch (IndexOutOfBoundsException e) {
System.err.println("Caught IndexOutOfBoundsException: " + e.getMessage());
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
} finally {
if (out != null) out.close();
}
}
}
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。