zoukankan      html  css  js  c++  java
  • java 异常处理

    异常对象的分类
                   Throwable
                   |     |
                 --       --
                |           |
              Error       Exception   
             错误           异常  可以处理
         严重 不可避免       |   |  
            无法处理       ---     ---
                           |           |
     RuntimeException 子类         非RuntimeException
                 未检查异常                    已检查异常
       可以避免 可处理可不处理         不可避免 必须处理

    Java中异常的分类

    所有异常,都继承自java.lang.Throwable类。

    Throwable有两个直接子类,Error类和Exception类。

    Exception

    Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。

    异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种

    RuntimeException

    RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。

    RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需throws子句中进行声明。(java api)

    它是uncheckedExcepiton。

    Java.lang.ArithmeticException

    Java.lang.ArrayStoreExcetpion

    Java.lang.ClassCastException

    Java.lang.EnumConstantNotPresentException

    Java.lang.IllegalArgumentException

           Java.lang.IllegalThreadStateException

           Java.lang.NumberFormatException

    Java.lang.IllegalMonitorStateException

    Java.lang.IllegalStateException

    Java.lang.IndexOutOfBoundsException

           Java.lang.ArrayIndexOutOfBoundsException

           Java.lang.StringIndexOutOfBoundsException

    Java.lang.NegativeArraySizeException’

    Java.lang.NullPointerException

    Java.lang.SecurityException

    Java.lang.TypeNotPresentException

    Java.lang.UnsupprotedOperationException

    CheckedException

    除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。

    一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。

    Java.lang.ClassNotFoundException

    Java.lang.CloneNotSupportedException

    Java.lang.IllegalAccessException

    Java.lang.InterruptedException

    Java.lang.NoSuchFieldException

    Java.lang.NoSuchMetodException

    Error

    当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。

    与异常不同的是Error及其子类的对象不应被抛出。

    Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

    在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

    它是uncheckedExcepiton。

  • 相关阅读:
    HTTP 协议中 URI 和 URL
    @Controller、@RestController
    java selvet 初学
    RocketMQ4.4 入门进阶+实战
    Spring Cloud微服务(一):公共模块的搭建
    Spring Boot 入门(十三):集成Hasor的Dataway模块,干掉后台,自动配置接口
    Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率
    Spring Boot 入门(十一):集成 WebSocket, 实时显示系统日志
    Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
    Spring Boot 入门(九):集成Quartz定时任务
  • 原文地址:https://www.cnblogs.com/cici-new/p/3630195.html
Copyright © 2011-2022 走看看