异常小结

异常小结

**
 * Throwable类是所有错误和异常的父类
 * 		错误:XxxError
 * 		异常:Exception
 *
 * Throwable常用方法:
 * 		public void printStackTrace()。打印异常的详细信息
 * 		public String getMessage()返回此 throwable 的详细消息字符串。
 * 		public String toString()返回此 throwable 的简短描述。
 *
 *
**
 * 异常的分类:
 * 		运行时异常:代码没有语法格式错误,在运行时期发生异常
 * 			特点:自己可以不用处理,如果不处理,JVM自动帮助我们处理
 * 				JVM的处理方案:
 * 					1.调用异常类中的print(),打印异常的详情信息
 * 					2.强制终止程序
 * 		编译时异常:代码没有语法格式错误,在编译时期发生异常
 * 			特点:必须手动进行处理
 * 			手动处理解决方案:
 * 					1.异常在方法上的声明:
 * 						自己不处理,交给调用者方法处理,如果有多层方法的调用,
 * 						多个方法都处理不了的情况下,最终交给JVM进行处理
 * 					2.异常的捕获:谁都不求,自行解决
 * 						今后主要处理异常的方式都是异常的捕获,
 * 					在基础阶段,基本上都是第一种处理方式
 *
**
 * 异常处理的有关的关键字:
 * 		throw,throws,try,catch,finally
 *
 * throw 异常的抛出
 * 		通知程序出现了异常信息(从无到有)
 *
 * throw关键字的格式
 * 		throw new XxxException("异常发生的原因");
 *
 * 异常的声明:
 * 		修饰符 返回值类型 方法名 () throws 异常类名1,异常类名2,..... {
 *
 * 		}
 *
**
 * 异常的注意事项:继承
 * 		1.声明的多个异常类之间存在子父类继承关系
 * 			a.在进行异常声明的时候,子类异常和父类类型谁在前谁在后,顺序无所谓
 * 			b.当某个方法存在多个异常时,可以声明这几个异常类的父类,简化代码
 * 		2.含有异常类的代码出现子父类继承关系
 * 			a.含有异常类的代码出现在父类的方法中
 * 				如果子类重写父类中含有异常的方法,子类无需理会父类异常信息
 * 			b.含有异常类的代码出现在子类的方法中
 * 				在子类重写父类的方法中出现了异常信息,手动的解决方案只有唯一的一种:
 * 			异常的捕获
 *
**
 * 异常捕获的注意事项:继承
 * 		1.多个异常类之间存在子父类继承关系
 *			解决方案:
 *				a.针对多个异常分别捕获,分别处理(推荐)
 *				b.针对多个异常一次捕获,分别处理
 *					注意:如果一次捕获,分别处理的时候,
 *					需要将子类的catch写到上到或者直接处理一个父类即可
 *				c.针对多个异常一次捕获,一次处理
 * 		2.含有异常的代码出现子父类继承关系
 * 			a.含有异常的代码出现在父类的方法中
 * 				如果子类重写父类中含有异常的方法,子类无需理会父类异常信息
 * 			b.含有异常的代码出现在子类的方法中
 * 				在子类重写父类的方法中出现了异常信息,手动的解决方案只有唯一的一种:异常的捕获
 *
**
 * finally关键字:
 * 		格式1:
 * 			try {
 *
 * 			} catch () {
 *
 * 			} finally {
 * 			    必须执行的代码
 * 			}
 * 	    格式2:
 * 	    	try {
 *
 * 	    	} finally {
 * 	    	    必须执行的代码
 * 	    	}
 *
 * 	 作用: 必须执行的代码
 * 	 应用场景:
 *finally里面执行关系资源的代码
 *
 * 		finally注意事项:
 *try语句中,catchfinally里面尽量不要写return,
 *	因为catchfinally同时拥有return语句,执行的是finally里面的return语句
 *
**
 * 自定义异常:
 * 		自定义运行时异常
 * 			位置:java.lang.RuntimeException
 * 			1.自定义运行时异常类,	并继承RuntimeException
 * 			2.生成对应的构造器,至少生成2* 				一个是无参的构造器
 * 				一个是带有String类型参数的构造器
 * 		自定义编译时异常
 * 			位置:java.lang.Exception(除了RuntimeException)
 * 			1.自定义编译时异常类,并继承Exception
 * 			2.生成对应的构造器,至少生成2* 				一个是无参的构造器
 * 				一个是带有String类型参数的构造器
 *
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值