java高级编程技术和API:异常处理<1>

1.关于java的异常处理首先会提到Throwable这个顶层父类,因为Exception和Error都是继承自throwable。
Error一般是因为jvm本身的错误。error是说程序员不能通过代码去解决,一般很少出现。我们应该更多的去关注exception这个类。我们一般所说的IOException(检查时异常)和RuntimeException(运行时异常)都是继承自Exception。在详细介绍exception其下子类之前,先po出一张图来帮助理清楚整体结构。
在这里插入图片描述

					从图中我们可以很清晰的看到java整个异常处理类的结构。

**非检查异常(unckecked exception):**Error 和 RuntimeException 以及他们的子类。javac在编译时,不会提示和发现这样的异常,不要求程序处理这些异常。所以如果愿意,我们可以也编写代码处理(使用try…catch…finally)这样的异常,也可以不处理。对于这些异常,我们更应该去修改代码 ,因为这样的异常发生的原因多半是代码写的有问题。比如像除0发生的错误ArithmeticException,强制类型转换错误ClassCastException,数组索引越界ArrayIndexOutOfBoundsException,空对象NullPointerException等等。

**检查异常(checked exception):**除了Error 和 RuntimeException的其它异常。javac强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws)。在方法中要么用try-catch语句捕获它并处理,要么用throws子句声明抛出它,否则编译不会通过。这样的异常一般是由程序的运行环境导致的。因为程序可能被运行在各种未知的环境下,而程序员无法干预用户如何使用他编写的程序,于是程序员就应该为这样的异常时刻准备着。如SQLException , IOException,ClassNotFoundException 等等。

一般在实习生的面试中很容易问到这个问题,让你举例你了解的运行时异常和检查时异常,这个时候你说的越多越好,最好再加上一些描述,比如说你在写程序时所遇到的异常、等等。这里我稍微整理了一下//
常见的运行时异常有:1.java.lang.NullPointerException(空指针异常)ps:java 中是具有指针的,一般初学者可能会不知道,我曾经在面试中问到这个问题。空指针异常的解释很简单。简单地说就是调用了未经初始化的对象或者是不存在的对象,经常出现在调用数组和创建图片的操作中。
2.java.lang.ArrayIndexOutOfBoundsException (数组下标越界异常)。简单解释就是调用数组的值时超出了数组的下标。当程序中调用数组的操作是通过某种特定的方法决定时,就得小心了,这时候一定要检查一下被调用的数组的length是否被超出。
3.java.lang.IndexOutOfBoundsException(索引越界异常)。当访问某个序列的序列值小于0或者大于等于序列大小时,就会抛出索引越界异常。
4.ClassCastException(类型强制转换异常)。
5.IllegalArgumentException (传递非法参数异常)。

常见的检查时异常有:1.IOException(IO流异常)。一般在读写文件时可能会发生该异常,比如当你去读取硬盘上的一个文件,但是该文件却不存在时。
2.SQLException(数据库异常)。
3.FileNotFoundException(找不到文件异常)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值