try-catch-finally的作用? 用于异常代码的捕获和处理作用。try { // 可能存在异常的代码 } catch (异常类型A 引用名称) { // 异常处理1 } catch (异常类型B 引用名称) { // 异常处理2 } finally { // 一定要执行的代码 } try包裹着的是可能存在异常的代码,当代码执行时,一旦发生了异常,就可能被catch块捕获。try后面一定要跟catch块或者finally块,不能独立存在。 catch块是捕获异常作用,可以存在多个catch块,捕获不同类型的异常(相同类型异常只能存在一个),但是要循序从子类往父类大小范围书写,否则编译错误。 从大往小:编译错误 finally块的内容是一定要执行的,且只能存在一个finally块。 只能存在一个finally块try中如果使用return,finally中的代码是否还会执行? 代码示例:public class Test { public static void main(String[] args) { test(); } public static int test() { try { return 1; } finally { System.out.println("finally块"); } } } 答案:会。 代码示例try和finally中都使用return,则返回什么? 代码示例:public class Test { public static void main(String[] args) { System.out.println(test()); } public static int test() { try { return 1; } finally { return 3; } } } 答案:3 代码示例try中发生了异常,在没有catch块情况下,finally中使用return,会返回什么? 代码示例:public class Test { public static void main(String[] args) { System.out.println( test()); } public static int test() { try { throw new RuntimeException(); } finally { return 1; } } } 答案:1 代码示例有没有可能只执行try-catch不执行finally情况? 代码示例:public class Test { public static void main(String[] args) { test(); } public static void test() { try { System.out.println("try块"); // 正常退出,程序正常执行结束退出 System.exit(0); } finally { System.out.println("finally"); } } } 答案:有。 代码示例