1、异常
所有的异常类都是java.lang. Exception的子类
1.1检查性异常:无法避免
因为用户错误或者其他外在操作错误,导致的代码无法继续执行,引起的异常。比如:断网、处理的文件
不存在等。
常见的检查性异常类:
1) ClassNotFoundException:应用程序试图加载类时,找不到相应的类,抛出该异常
2) lllegalAccessException:访问一个类被拒绝的时候,抛出该异常
3) NoSuchFieldException:请求的变量不存在
4) NoSuchMethodException:请求的方法不存在
1.2运行时异堂:可以擗免
运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。比如:空
指针异常
常见的运行时异常类: .
1) ClassCastExceotion:对象类型转换异常
2) IndexOutOfboundsException:下标越界异常
3) NullPointerException(NPE):空指针异常
1.3返回异常
try { //处理 可能出现异常的代码块 } catch (NullPointerException e) { //处理异常 e. printStackTrace();//打印异常信息 } firally { //无论是否发生异常, finally中的代码块都将在最后执行 System. out. println("finally"); }
注意:如果try或者catch中有return返回值,则先执行完finally中的代码, 再返回数据
1.4抛出异常
public static void run() { //在本方法中, 抛出一个异常 throw new NullPointerException(); } //throws将异常抛出给上一级处理,最终将抛给jvm处理 //如果调用此方法,必须处理异常 public static void run() throws NullPo interException, ClassNotFoundException{ {
2、错误java.lang.Error
错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。
例如:
JVM内存溢出。错误在编译阶段也是检查不到的。一般地,程序不会从错误中恢复。