个人学习总结一异常

个人学习总结一异常

Java异常其实就是对程序运行中的不正常现象进行了对象的封装。
——异常体系 Throwable(该体系的特点在于可抛性,即可被throws和throw操作)
Error 一般是不可处理的
Exception 可以通过 try.catch.finally 处理
处理方式
——捕获异常:try.catch 直接处理可能出现的异常
——声明异常:throws声明告诉调用者可能的异常,暴露问题,让调用者自己处理处理异常

	try
	{
		//需要被检测的代码
	}catch(异常类	变量)
	{
		//处理方式
	}
	finally
	{
		//一定会执行的语句
	}
对多异常的处理(在实际开发中异常的处理不是打印在控制台,而是写入硬盘的日志文件)
——在声明异常时建议声明的更加具体,以便于处理的更加具体,异常名直接用逗号连接
——声明几个异常,就用几个catch块
——如果catch块中的异常有继承关系,父类放在下面——自定义异常
自定义一个异常类,继承Exception(这样将可抛性也继承了下来)

throw和throws的比较

throw用在函数内部,throws用在函数上;
throw后跟着的是异常对象,只能跟一个;throws后可以跟着多个异常类,用逗号隔开。
自定义异常示例:

public class ExceptionTest 
{
	public static void main(String[] args)
	{
		Demo d = new Demo();
		try
		{
			int i = d.show(8, -2);
		} catch (FuShuException e)
		{
			System.out.println(e.toString());
			System.out.println("负数时"+e.getValue());
		}
	}
}
class Demo
{
	public static int show(int x, int y) throws FuShuException
	{
		int b =0;
		if(y<0)
		{
			throw new FuShuException("出现负数了", y);
		}
		return b = x/y;
	}
}
class FuShuException extends Exception
{
	private int value;
	FuShuException(String str, int value)
	{
		super(str);
		this.value = value;
	}
	public int getValue()
	{
		return value;
	}
}
——Exception 和 RuntimeException
    凡是继承Exception并在函数上抛出的异常,说明都是可以处理的;而继承RuntimeException的异常则不用声明,说明这种异常必定会导致程序停止,必须要修改代码。即Exception在编译时会被检测,RuntimeException则不会。
——finally
    一定会执行的代码块,通常用于关闭资源。
    可以这么使用:
    /*没有catch,视为没有解决异常,必须在函数上声明
    * try()
    * finally() 
    */
 finally只有一种情况不会执行,System.exti(0)写在它之前,jvm退出。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值