黑马程序员__异常机制


什么是异常?
异常是程序在运行中出现的非正常状态。

异常体系
Throwable
|--Error
|--Exception
|--RuntimeException

error和exception的区别?
error表示恢复不是不可能但是很困难的情况下的一种严重问题,比如内存溢出不可能指望程序能够处理。
exception是实现或设计问题,也就是说如果程序运行正常,从不会发生的情况。

运行时异常和一般异常的区别?
异常是程序运行中出现的非正常状态。运行时异常是java虚拟机的通常操作中出现的异常,是一种常见的运行错误。java编译器要求方法必须声明或抛出可能发生的非运行时异常,但不要求必须声明抛出未被捕获的运行时异常。

throw和throws关键字
throw:在方法内抛出异常对象。
throws:在方法上声明可能发生的异常。

异常处理语句格式
Java代码 复制代码 收藏代码
  1. //格式一
  2. try
  3. {
  4. }
  5. catch ()
  6. {
  7. }
  8. //格式二
  9. try
  10. {
  11. }
  12. catch ()
  13. {
  14. }
  15. finally
  16. {
  17. }
  18. //格式三
  19. try
  20. {
  21. }
  22. finally
  23. {
  24. }
//格式一
try
{
	
}
catch ()
{
}
//格式二
try
{
	
}
catch ()
{
}
finally
{

}
//格式三
try
{
	
}
finally
{
}

finally表示总是被执行,通常在里面做关闭资源的动作。只有遇到Sytem.exit(0);语句时finally语句不会被执行。
如果没有对异常进行处理,虚拟机进行默认处理,调用默认异常处理机制,程序终止。

多异常处理
1.声明异常时,建议声明更为具体的异常,这样处理更具体
2.对方声明几个异常,就对应几个catch块
如果对个catch中的异常出现继承关系,父类异常catch块放在最下面,不要定义多余的
catch块。

自定义异常
因为项目中会出现特有的问题,而这些问题未被java所描述并封装对象,所以对于这些特有问题可以按照java对问题封装思想。将特有问题进行自定义的异常封装。这就是自定义异常。必须继承Exception、

自定义异常信息
因为父类已经将异常信息的操作(如getMessage)都完成了,所以子类只要在构造时,将异常信息传递给父类通过super语句,那么就可以直接通过getMessage方法获取自定义的异常信息。
Java代码 复制代码 收藏代码
  1. class FuShuException extends Exception
  2. {
  3. FuShuException(String msg)
  4. {
  5. super(msg);
  6. }
  7. }
  8. class ExceptionTest
  9. {
  10. try
  11. {
  12. //捕获异常
  13. }
  14. catch (FuShuException e)//异常处理
  15. {
  16. System.out.println(e.toString());
  17. }
  18. }
class FuShuException extends Exception
{
	FuShuException(String msg)
	{
		super(msg);
	}
}

class ExceptionTest
{

	try
	{
		//捕获异常
	}
	catch (FuShuException e)//异常处理
	{
		System.out.println(e.toString());
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值