Exception Error
Exception 分为两类 运行时异常非受检异常继承自 RuntimeException 编译器不强制处理多为代码逻辑错误导致。常见例子 NullPointerException空指针异常 ArrayIndexOutOfBoundsException数组下标越界 ArithmeticException算术运算异常如除 0 ClassCastException类型转换异常 IllegalArgumentException非法参数异常 非运行时异常受检异常除 RuntimeException 及其子类外的 Exception 编译器强制要求处理try-catch 或 throws多为外部环境问题。常见例子 IOException文件 / 网络读写异常 SQLException数据库操作异常 ClassNotFoundException类未找到 CloneNotSupportedException克隆不支持package further.zwf; /** * 八股文异常问题 * * author ZengWenFeng * date 2023.11.17 * mobile 13805029595 * email 117791303QQ.com */ public class FinallyTest { public static void main(String[] args) { System.out.println( 场景1try 里调用 System.exit(0) 终止 JVMfinally 不执行 ); try { System.out.println(执行 try 代码); System.exit(0); // 直接退出 JVM程序终止 } finally { System.out.println(执行 finally 代码); // 这行永远不会输出 } } // 下面是另外 3 种 finally 不执行的场景注释掉上面 main 方法即可运行 /* public static void main(String[] args) { // 场景2try 内死循环永远到不了 finally System.out.println( 场景2死循环finally 不执行 ); try { while (true) { // 死循环 } } finally { System.out.println(执行 finally); // 永远不执行 } } */ /* public static void main(String[] args) { // 场景3JVM 崩溃/硬件故障模拟致命错误 // 实际开发中是系统崩溃、断电等 System.out.println( 场景3JVM 崩溃finally 不执行 ); try { throw new Error(JVM 级错误); } finally { System.out.println(执行 finally); // 不会执行 } } */ /* public static void main(String[] args) { // 场景4线程被强制杀死不推荐使用但能说明问题 System.out.println( 场景4线程被杀死finally 不执行 ); Thread t new Thread(() - { try { Thread.sleep(1000); } catch (Exception e) { } finally { System.out.println(执行 finally); // 不会执行 } }); t.start(); t.stop(); // 强制杀死线程 } */ }我用直白一点的话总结下吧 err 程序直接就无法运行中断了 exception程序还可以继续执行
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2609992.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!