package com.robert.test1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * @author Administrator *测试try catch块的执行路径 */ public class TryCatchTest { public static void main(String[] args) { try { InputStream inputStream = new FileInputStream("abc"); inputStream.read(); } catch (FileNotFoundException e) { System.out.println("throw a FileNotFoundException"); } catch (IOException e) { System.out.println("throw a IOException!"); } System.out.println("hello world!"); } } 当文件找不到时:
输出:
throw a FileNotFoundException
hello world!
package com.robert.test1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * @author Administrator *测试try catch块的执行路径 */ public class TryCatchTest { public static void main(String[] args) { try { InputStream inputStream = new FileInputStream("abc"); inputStream.read(); } catch (FileNotFoundException e) { System.out.println("throw a FileNotFoundException"); return; } catch (IOException e) { System.out.println("throw a IOException!"); return; } System.out.println("hello world!"); } }
在catch块中加入return ,当程序遇到异常(FileNotFoundException,IOException)的时候会被返回。即catch后的代码不会被执行。
输出:
throw a FileNotFoundException
package com.robert.test1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * @author Administrator *测试try catch块的执行路径 */ public class TryCatchTest { public static void main(String[] args) { try { InputStream inputStream = new FileInputStream("abc"); inputStream.read(); } catch (FileNotFoundException e) { System.out.println("throw a FileNotFoundException"); return; } catch (IOException e) { System.out.println("throw a IOException!"); return; } finally { System.out.println("finally"); } System.out.println("hello world!"); } }
如果后finally,程序遇到异常(FileNotFoundException,IOException) ,finally块中的代码也会被执行到。
输出:
throw a FileNotFoundException
finally