[第五章]第三节、常见异常

第三节、常见异常

       1.检测异常(checked exceptions

               ClassNotFoundException

定义在java.lang 中,说明某类被调用,但是没有找到相应的类文件。该类名不正确,或者该类对程序无效。

               IOException :

定义在 java.io 中,在读写文件时发生错误的信号。在你使用流(Stream)的方法时常常不得不处理这种异常。

            FileNotFoundException :

定义在 java.io中,当访问一个文件时,你必须准备处理这种异常。记住,这是因为,你创建了某File对象并不意味着该文件存在。

    IllegalAccessException :

        定义在 java.lang 中,当你在某类中尝试加载,但是当前执行方法没有访问指定的类时,则会发生这种异常。当你尝试创建某类的实例,但是当前方法没有访问合适的无参数构造器时也会发生这种异常。

            InterruptedException :

定义在 java.lang 中,当你休眠线程或挂起线程时,必须准备处理这种异常;休眠线程或挂起线程可能在休眠时间结束之前或在调用resume()之前被中断,以捕获在这种情况下抛出的异常。

               MalformedURLException :

定义在 java.net中,当创建URL时,必须准备处理这种异常,以防提供的URL字符串不合要求。

            EmptyStackException :

定义在java.util中,继承RuntimeException类。该异常可以由Stack类中的方法来抛出。如果你尝试从空的堆栈检索项,则会发生此异常。

            InvalidParameterException :

定义在java.security 中,扩展IllegalArgumentException类。在你尝试给方法传递无效参数时发生。

 

    2.非检测异常  (unchecked exceptions)( 定义在java.lang中)

            ArithmeticException :

定义在 java.lang 中,在出现不合法的数学运算发生时,比如整数被0除,JVM将抛出这种异常。

    ArrayIndexOutOfBoundsException :

定义在 java.lang 中,如果你使用非法的索引值来访问数组时,该异常就会抛出。该异常说明该索引值要么是负值,要么超过或等于数组大小。

            ArrayStoreException :

                定义在 java.lang 中,在你尝试对象数组中保存错误类型的对象时发生。

               ClassCastException :

                定义在 java.lang 中,说明代码尝试把某对象转换到不同实例的子类。

    IllegalArgumentException :

        在你尝试向方法传递非法值或者不合适的值时发生。

    NullPointerException :

定义在 java.lang 中,如果调用使用null对象引用的方法,就会看到这种异常。

    NumberFormatException :

定义在 java.lang 中,如果将字符串转换成数字,你得准备这种异常,以防该字符串实际上并不代表数字。

    StringIndexOutOfBoundsException :

                            定义在 java.lang 中,说明尝试在字符串边界外索引。

 

因为java.lang实际上被所有的Java程序中引入,多数从RuntimeException派生的异常都可自动可用,而且它们不需要被包含在任何方法的throws列表中。Java语言中,这被叫做未经检查的异常(unchecked exceptions)。在java.lang中定义了必须在方法的throws列表中包括的异常,它们包括Exception的直接子类中除RuntimeException外的子类。当方法能产生其中的某些异常但是不能自己处理时,必须在throws列表中包括它们,这些叫做受检查的异常(checked exceptions)。

下面是java.lang包中Exception的子类图:

Object                          // java.lang定义了很多Throwable的子类

      |                           // ExceptionError是所有异常和错误的超类

Throwable

|

Exception                    

       |――ClassNotFoundException

       |――CloneNotSupportedException

       |――IllegalAccessException

       |――InstantiationException

       |――InterruptedException

       |――NoSuchFieldException

       |――NoSuchMethodException

       |――RuntimeException

                            |――ArithmeticException

                            |――ArrayStoreException

                            |――ClassCastException    |――IllegalThreadStateException 

                            |――IllegalArgumentException|――NumberFormatException

                            |――IllegalMonitorStateException

                            |――IndexOutOfBoundsException|ArrayIndexOutOfBoundsException

                            |――NegativeArraySizeException      |StringIndexOutOfBoundsException

                            |――NullPointerException

                            |――SecurityException

                            |――UnsupportedOperationException

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值