史上最强大的搜索神器,seo原创工具,郸城网站建设,怎么自己制作个网站1. 概念exception是“exceptional event”的缩写#xff0c;是指执行程序中发生的事件#xff0c;破坏了程序的正常执行流程。Java 异常处理机制使程序更加健壮易于调试#xff0c;它可以告诉程序员三个问题#xff1a;错误的类型、位置、原因#xff0c;帮助程序员解决错…1. 概念exception是“exceptional event”的缩写是指执行程序中发生的事件破坏了程序的正常执行流程。Java 异常处理机制使程序更加健壮易于调试它可以告诉程序员三个问题错误的类型、位置、原因帮助程序员解决错误。2. 类别Throwable是Java所有异常类的顶级父类只有这个类的对象(或者其子类对象)才能被异常处理机制识别也就是说JVM或者throw语句抛出的异常必须是Throwable或者子类对象catch语句处理的异常类也是如此。整体上来看Java异常可以分为三类检查异常除了Error、RuntimeException及其子类所表示的异常其他都为检查异常意味着编译器在编译源码时会对此类异常的处理进行检查如果没有做异常处理(try、catch、finally或者throws)编译无法通过。比如使用 java.io.FileReader 类读取指定文件文件不存在会抛出 java.io.FileNotFoundException 异常这个异常在编码时必须被处理。运行时异常RuntimeException及其子类表示的异常javac在编译时不会检查的异常这类异常更多的是代码写的有问题如除0错误ArithmeticException这类异常应该修改代码而不是使用异常处理器处理。错误Error及其子类代表了JVM本身的错误。错误不等于异常不能被程序员通过代码处理。出现Error程序通常无法恢复3. 举例其中java.lang.ArrayIndexOutOfBoundsException为异常类型表明了异常出现的大致原因3是异常原因的说明后面打印出的是异常追踪栈(StackTrace)因为函数是层级调用的只要其中有一个函数出现了异常它的所有调用者都会被异常影响。通过查看异常可以很容易得定位到错误发生在Test.test3()方法第23行代码原因是下标3越界了。4. 捕获异常的语法对于检查异常来说通常有两种方式来处理异常避免编译器检查不通过。try、catch、finallytry语句块儿中包含可能出现异常的代码。catch语句块儿用于捕获和处理特定异常允许存在多个catch块儿括号中定义了异常类型与参数JVM使用最先匹配到的catch块儿来处理异常。finally块儿是可选的无论是否发生异常是否匹配catch块儿finally中的代码都会执行。主要做一些清理工作如数据库连接的关闭。注意try块儿不能单独出现至少要有一个catch块儿或者finally块儿。当执行一个方法中的某条语句时发生异常即使异常被处理这条语句后面的代码也不会被执行而是会顺序执行下一个方法。try {}catch (Exception e) {}finally {}throw、throws抛出异常方法自己不处理异常仅仅是把异常抛给其调用者。使用throw处理异常通常的原因是方法本身不知道如何处理异常或者说让调用者处理更合适。5. 原则为了更好的使用java的异常处理机制Jim Cushing总结了三个原则具体明确、及早抛出、延迟捕获。具体明确在上文中我们提到Java的异常类是一层一层继承而来的为了使异常信息更加具体明确通常使用其子类。如果需要更加具体的异常信息也可以定义自己的异常类。比如相比于IOExceptionFileNotFoundException可以看做是一个更为具体化的异常。https://blog.csdn.net/u013201439/article/details/79908225