异常

来源:互联网 发布:市政工程算量软件 编辑:程序博客网 时间:2024/05/16 02:00
 ----------------------------------------------------------------异常----------------------------------------------------------------
 /**
 * 异常
 * 
 * 异常的体系:
 * ------------|Throwable
 * ----------------|Error(错误)错误一般是由于jvm或者硬件引发的问题,所以我们一般都不会通过代码去处理。
 * ----------------|Exception(异常)异常我们一般都会通过代码去处理。
 * 
 * -------------------|RuntimeExecption以及其子类都是:运行时异常:如果一个方法内部抛出了一个运行时异常,那么方法上可以声明也可以不声明,调用者可以处理,也可以不处理。
 * -------------------|(除了运行时异常就是编译时异常)编译时异常:(非运行时异常、受检异常):如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而调用者也必须要处理。
 * 注意:运行时异常是可以通过代码避免的,所有java虚拟机没有做强制要求,但运行时异常就不一样,很多情况都不能避免,所有jvm做了强制处理要求。
 * 
 * 异常的处理方式
 * 方式一:捕获处理
 * 捕获处理的格式
 * try{}catch(捕获的异常类型 变量名){}
 *  捕获处理要注意的细节:
 *   1.如果一个trykuai中出现了异常的代码,经过处理后,那么try-catch块外面的代码可以正常执行。
 *   2.如果一个try块中出现了异常的代码,那么在try块中出现异常的代码后面的语句无法执行。
 *   3.一个try块后面可以跟多个catch块,也就是一个try块可以捕获多种异常的类型,但是捕获的异常类型必须从小到大进行捕获。
 *  方式二:抛出异常(throw throws)
 *   抛出异常要注意的细节:
 *   1.如果一个方法内部抛出了一个异常对象,那么该方法必须要声明抛出。
 *   2.如果调用了一个声明抛出异常的方法,那么调用者必须要处理。
 *   3.如果一个方法抛出了一个异常对象,那么该方法也会马上停止(一个方法遇到了throw关键字,那么该方法就会马上停止)
 *   4.在一种情况下只能抛出一种异常对象。
 *  throw 关键字是用于方法体之内抛出的异常对象的,throws是用于方法声明抛出异常类型的。
 *
 *sun提供了很多的异常类,给我们用于描述程序中的不正常情况,但是sun提供的异常类还不足以描述我们现实生活中
 *所有不正常情况,那么这个时候我们就需要定义异常类。
 *
 *需求:模拟feiQ上线的时候如果没有插上网线,那么就要抛出一个没有插上网线的异常。
 *
 *自定义异常类:继承Exception即可。
 *
 *
 */
0 0