java中的异常介绍

一、异常概述

        异常就是程序在运行过程中出现的一些错误,我们通过面向对象的思想,把这些错误也用类来描述,那么一旦产生一个错误,即就是创建了某一个错误的对象,这个对象就是我们所说的异常对象。

        在这之前也见过很多的异常错误,例如:

(1)IndexOutOfBoundsException:

        ArrayIndexOutOfBoundsException
        数组角标越界异常 角标不在数组范围内

        StringfIndexOutOfBoundsException
        字符串角标越界异常 角标不在字符串范围内

(2)NullPointerException
    空指针异常 对null调用其成员。
(3)ArithmeticException
    数学运算异常 非法的数学运算。
(4)ClassCastException
    类型转换异常 将类进行错误的强制转换。
(5)NumberFormatException
    数字格式化异常 将数字字符串进行解析。
(6)InputMismatchException
    输入不匹配异常 在输入时输入非法数据。
(7)ParseException
    时间解析异常 非法的时间格式。
(8)StackOverFlowError
    栈内存溢出异常 函数递归。
(9)OutOfMemoryError
    堆内存异常 数组空间开辟过大 程序中对象太多。

二、异常类型

 既然错误的原因有很多,描述错误的类也有很多,那么这种情况就产生了一个大的家族/体系,这里面全都是异常错误类,我们叫做异常体系。
    对于异常体系而言,大家都是错误,只不过所产生的原因不太一样,不断的进行向上抽取共性,最终抽出Throwable这个接口(可以被抛出的),但凡是异常对象,无论原因,都可以被抛出。
    Throwable类是 Java 语言中所有错误或异常的超类,只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。
    异常是对象,而对象都采用类来定义。异常的根类是 java.lang.Throwable。关系图如下:

三、处理编译时异常的更多知识

1. 声明异常

        在 Java 中,当前执行的语句必属于某个方法。Java 解释器调用 main 方法开始执行一个程序。每个方法都必须声明它可能抛出的必检异常的类型。这称为声明异常( declaring exception)。只对编译时异常进行声明,、告知方法的调用者有异常。
    为了在方法中声明一个异常,就要在方法头中使用关键字 throws, 如下所示:

         关键字 throws 表明 myMethod 方法可齙会抛出异常 IOException。如果方法可能会抛出多个异常,就可以在关键字 throws 后添加一个用逗号分隔的异常列表:

  注意:如果方法没有在父类中声明异常,那么就不能在子类中对其进行继承来声明异常

2. 抛出异常 

         检测到错误的程序可以创建一个合适的异常类型的实例并抛出它,这就称为抛出一个异常(throwing an exception)。这里有一个例子,假如程序发现传递给方法的参数与方法的合约不符(例如,方法中的参数必须是非负的,但是传入的是一个负参数),这个程序就可以创建 IllegalArgumentException 的一个实例并抛出它,如下所示:

         注意:IllegalArgumentException 是 Java API 中的一个异常类。通常,JavaAPI 中的每个异常类至少有两个构造方法:一个无参构造方法和一个带可描述这个异常的 String 参数的构造方法。该参数称为异常消息(exceptionmessage), 它可以用 getMessage()获取。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值