java学习笔记--基础知识--异常

一、异常的层次结构

Throwable是java异常的顶级类,Exception和Error是它2个重要的子类,各自包含了大量的子类。   Exception和Error的区别在于,Exception是可以被程序本身处理的,Error是无法有程序本身处理的。

Throwable中我们常用的方法有:

1. 返回异常发生时的详细信息
public string getMessage();
 
2. 返回异常发生时的简要描述
public string toString();
 
3. 返回异常对象的本地化信息。使用Throwable的子类覆盖这个方法,可以声称本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与getMessage()返回的结果相同
public string getLocalizedMessage();
 
4. 在控制台上打印Throwable对象封装的异常信息
public void printStackTrace();

Error是指程序运行所依赖的环境出现了问题,例如JVM出问题了,又或者内存用尽了,这些都是不允许出现的情况,解决这类问题已经超出了程序本身的能力,所以程序不用去捕获这类异常状态。

 

Exception是指程序本身可以处理的意外情况。 Exception有一个非常重要的子类 RuntimeException。 RuntimeException及其子类表示了 JVM常用操作 所引发的错误。 包括了NullPointerException、ArithmeticException、ArrayIndexOutOfBoundException等等。

我说Exception是可以被程序本身进行处理的,但是要不要处理呢(处理异常包括:捕获和抛出2中处理方法)? 

按照Exception是否必须进行处理,可以分为2类:

1. 可查异常(编译器要求必须处理的异常): 这种异常在程序执行时经常会出现,而且出现这种异常是我们可以预见的到的。 在调用可能抛出这种异常的方法时,编译器要求我们必须就那些处理。 这类异常是,除了RuntimeException及其子类以外的所有异常类。

2. 不可查异常(编译器并不强制要求处理): 包括 RuntimeException及其子类,Error及其子类。  在程序中,我们调用可能抛出RuntimeException的方法时,可以不处理这个异常(不抛出,不捕获)。  java这样设计是因为,当RuntimeException发生时,肯定是我们的程序逻辑出现了问题,我们需要去找到并解决它,而不是捕获了事。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值