一、今日学习内容:
今天学习的是老师再看课上讲的一些有关异常处理的知识。
1、异常:
异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象。
例如:数组越界和被0除。
2、关于异常:
异常处理的目的是依据实际情况提供不同的错误应对策略与手段,使程序更稳定,更安全。
异常处理的主要用途是提供准确的错误消息,解释失败的原因、位置和错误类型等,同时提供一定的恢复能力,尽可能地保证数据完整性不被破坏,并让程序能继续运行。
3、Java中的异常捕获语句
Try{ //可能发生运行错误的代码; } catch(异常类型 异常对象引用){ //用于处理异常的代码 } finally{ //用于“善后” 的代码 }
Java 中所有可捕获的异常都派生自 Exception 类。
4、使用Java异常处理机制
(1)把可能会发生错误的代码放进try语句块中。
(2)当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。catch语句块中的代码用于处理错误。
(3)当异常发生时,程序控制流程由try语句块跳转到catch语句块。
(4)不管是否有异常发生,finally语句块中的语句始终保证被执行。
(5)如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。
5、JDK中与异常相关的类
6、Java中的异常分类:
Throwable类有两个直接子类:
Exception:出现的问题是可以被捕获的;
Error:系统错误,通常由JVM处理。
可捕获的异常又可以分为两类:
(1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出
(2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象: throw new ArithmeticException(…);
Error示例:AssertionError
JDK1.4 以上提供了assert语句,允许程序在运行期间判断某个条件是否满足,不满足时,抛出AssertionError
例如:
public static void main(String[] args) { List<Integer> ints = Arrays.asList(1,2,3); int s = 0; for (int n : ints) { s += n; } assert s == 7; }
运行结果:Exception in thread "main" java.lang.AssertionError at Test.main(Test.java:14)
8、启用assert功能
默认情况下,assert功能是关闭的,可以在使用java启动JVM时添加参数-ea打开它。
二:遇到的问题
没有遇到什么问题;
三:明日学习计划:
明天继续学习异常处理的部分知识。