java 异常提示_Java显示异常信息与异常分类

运行上述代码,输出结果如下下图所示:

使用printStackTrace方法可以获取异常的具体类型,这样就可以在使用throw是抛出一个确切的异常。

2. 异常的分类

从编程角度考虑,可以将异常分为以下几种。

(1)非受检异常

非受检异常是指编译器不要求强制处置的异常。一般是指因设计或实现方式不当而导致的问题。也可以说,是程序员的原因导致的,是本来可以避免发生的情况。

java.lang.RuntimeException类及其子类都是非受检异常。具体如下:

●  java.lang.ClassCastException:错误的类型转换异常。

●  java.lang.ArrayIndexOutOfBoundsException:组下标越界异常。

●  java.lang.NullPointException:空指针访问异常。

●  java.lang.ArithmeticException:除零溢出异常。

如果事先检查数组元素下标,保证其不超出数组长度,ArrayIndexOutOfBoundsException异常就不会抛出;再如,先检查并确保一个引用类型变量值不为NULL,然后再访问其属性和方法,那么,NullPointException异常就不会抛出。因此,如果程序设计良好并且正确实现,这类异常就不会发生,所以通常也不会处理这类异常。

(2)受检异常

受检异常是指编译器要求必须处置的异常,即程序在运行时由于外界因素造成的一般性异常,具体如下:

●  java.lang.ClassNotFoundExeption:没有找到具有指定名称的类异常。

●  java.lang.FileNotFoundException:访问不存在的文件异常。

●  java.lang.IO Exception:操作文件时发生的异常。

●  java.sql.SQL Exception:操作数据库时发生的异常。

Java编译器要求Java程序必须捕获或声明所有受检异常。如FileNotFoundException、IO Exception等。因为,对于这类异常来说,如果程序不进行处理,可能会带来意向不到的结果。而非受检异常可以不做处理,因为这类异常很普遍,若全部处理可能会对程序的可读性和运行效率产生影响。

3. 自定义异常类

尽管Java提供了众多的异常类,但程序员有时可能需要定义自己的异常类来处理某些问题。例如,可以抛出中文文字的异常提示信息,帮助客户了解异常产生的原因,在这种情况下用户只要定义一个或直接或间接继承Throwable的类就可以了。一般情况下,自定义的异常类都选择Exception作为父类。直接继承Exception类的异常属于已检查异常,所以必须进行相应的处理。

■ 知识点拨

对于初学Java开发的读者来说,并不是对所有的方法都有进行异常处理,因为异常处理要占用一定的资源,影响程序的执行效率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值