java记录-异常

1、异常介绍

Throwable是所有异常的超类

类型描述
Error严重错误不该捕获,应该直接崩溃,如内存溢出
Exception可以预知和弥补的无关紧要的错误,如除以0
RuntimeException编译时不检查,出现问题后自己处理
非RuntimeException编译时就要处理,否则无法通过编译

JVM会把异常信息在控制台显示出来,然后杀掉程序

2、try…catch…捕获异常

try下面是可能产生异常的代码,在catch异常的时候要从小到大,先找具体异常,再用大的异常兜底

try{
	int a = 10/0;
}catch(DivideByZeroException e){
	e.printStackTrace();//打印异常信息
	System.out.println(e.getMessage());
	System.out.println(e.toString());
}catch(Exception e){
	e.printStackTrace();//打印异常信息
	System.out.println(e.getMessage());
	System.out.println(e.toString());
}finally{
	System.out.println("异常结束");
}

3、throws抛出异常

throws的意思是可能会出现异常需要抛出,不证明一定会有异常
写在函数声明后面,出现异常了就抛出去,在外面还是需要catch
团队开发,如果这个异常是调用者的问题,就可以把异常扔出去给他处理(甩锅)

public int divide(int a, int b) throws DivideByZeroException {
	int c = a/b;
	return c;
}
try{
	int d = divide(10, 0);
}catch(DivideByZeroException e){
	e.printStackTrace();
}

4、自定义异常

如果你不喜欢7这个数,定义一个“我不喜欢7的异常”,继承RuntimeException
自己定义的异常要自己判断异常出现条件并且手动去抛出 throw

class IdontLikeSevenException extends RuntimeException{
	public IdontLikeSevenException(){};
	public IdontLikeSevenException(String message){
		super(message);//让Throwable去构造
	};
}

try{
	int a = Math.round(Math.random()*10);//生成0~10的随机整数
	if(a==7)
		throw new IdontLikeSevenException("我不喜欢7,我觉得不行。");//抛出自己的异常
}catch(IdontLikeSevenException e){
	e.printStackTrace();
}

test.IdontLikeSevenException
at test.HelloWorld.main(HelloWorld.java:17)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值