对于JAVA处理异常的理解

1.java异常类层次图

2.java异常类的分析

  • Throwable:所有异常类都继承自它。 它有两个重要的子类 Error和Exception

  • Error:Error是我们所写的代码无法解决的错误,一般是JVM出现问题,栈溢出或者内存溢出等,我们不需要处理。

  • Exception:Exception是我们所写的代码可以解决的错误

JAVA中的异常(包括Error和Exception)可以分为可查异常不可查异常

可查异常:在Exception类中除了‘RuntimeException类及其子类’之外的异常都称为可查异常,例如
IOException,SQLException等。这类异常编译器要求必须处理。

不可查异常:Error和RuntimeException类及其子类。这类异常编译器不要求强制处理。

Exception类分为运行时异常非运行时异常,我们应当尽可能处理这些异常

运行时异常:RuntimeException 如空指针异常,这些异常可以处理,也可以不处理(意思是不处理这些异常编译也能通过,
我们应当修改程序消除错误),一般是由程序逻辑错误导致。

非运行时异常:除了RuntimeException之外的异常,如果不处理不能编译,如IOException等。

3.处理异常的方式

(1)抛出
(2)捕获

抛出:方法中抛出异常需要使用throws,代表着将可能出现的异常给调用这个方法调用者处理,调用者
若不能处理也可以再向上层抛出,但是最终需要有调用者处理。

捕获:使用try-catch或者try-catch-finally。
异常总是先抛出,后捕获。
当有异常时,try之后的大括号内的监控区域会自动抛出异常。
程序运行找到相匹配的catch子句执行里面的内容。

注:将捕获相对高层的异常类的catch子句放在后面。否则,捕获底层异常类的catch子句将可能会被屏蔽。

4.Throwable类中的常用方法

getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。
getMeage():返回异常的消息信息。
printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。

 有时为了简单会忽略掉catch语句后的代码,这样try-catch语句就成了一种摆设,
 一旦程序在运行过程中出现了异常,就会忽略处理异常,而错误发生的原因很难查找。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值