Java异常类使用心得

一、Throwable类
Throwable 是异常类的最顶层父类。
他有两个子类:
1.Error类(错误:代表了JVM的本身错误)比如我们调用递归算法时,栈爆了这种情况。所以不要太关注。

2.Exception类(异常:可以被Java异常处理机制使用,学习的核心)

上关系图:
在这里插入图片描述
二、Java异常类分类
1.非检查异常:
顾名思义就是你写上去,编译器程序检查不到你错误,无法提示你写try{}catch(){}语句的异常。如:空指针异常,数组下标越界之类的。
当然你可以写上try-catch语句去捕获异常,但是最好在编写程序时就注意到这个错误。
2.检查异常
顾名思义就是你写上去程序会报错,必须写上try-catch语句的异常(或者你抛出异常)。因为它是未知的,比如文件名写错之类的。
三、异常的处理方式
1.通常对于检查异常类的对象我们要使用try-catch语句去捕获这个异常。

try {
			int i = 1;
			i = i/0;
		} catch (ArithmeticException e) {
			e.printStackTrace();
		}

这种情况一定会发生ArithmeticException的错误,此时我们将其捕获,并输出它的错误信息。
2.try-catch-finally

try {
			int i = 1;
			i = i/0;
		} catch (ArithmeticException e) {
			e.printStackTrace();
		}finally {
			System.out.println("我没错");
		}

finally的作用:
无论发生啥,就算是在catch语句里面有return语句,你也得执行,反正就是一定执行它,除非电脑傻掉了。

3.直接抛出异常,让上一级处理
如:
public static void main(String[] args) { testException(); } public static void testException() throws ArithmeticException{ int i = 1; i = i/0; }
交给主函数处理,如果主函数也抛出异常,那就jre去处理吧。

四、自定义的异常类
如:

public class UnHappyException extends Throwable{

}

一定要继承至Throwable类,你才算是异常类,一般来说我们添加三个构造方法。

public class UnHappyException extends Throwable {
//该构造方法, 抛出异常时e.printStack()它的名字
	public UnHappyException() {
		super();
	}
//该构造方法,抛出异常时,打印message,也就是你定义的语句	
	public UnHappyException(String message) {
		super(message);
	}
//抛出异常时,打印message,还会给你说是因为cause这个异常而触发了我。(不开心)
	public UnHappyException(String message,Throwable cause) {
		super(message, cause);
	}	
}

五、散列笔记
1.可以try了有多个catch语句接收,但是异常类型得从小到大。
(不然一个Exception就全接收了,你不知道是哪个具体异常)
2.方法内部抛出异常用throw关键字,方法抛出异常用throws关键字
3.异常也是对象!
4.关于try-catch-finally语句
例子

public static int getA() {
		int a = 0;
		try {
			a = 1;
			return a;
		} catch (Exception e) {

		} finally {
			a = 2;
		}
		return 5050;
	}

该语句返回的值是1;
步骤1:先执行 a = 1;
2:将a的值存放到临时栈中。
3:执行finally语句修改a的值为2;
4:将临时栈里的值1返回出去。

若在finally方法中也有return句子,那么finally中的值将覆盖临时栈中的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值