zoukankan      html  css  js  c++  java
  • Java异常

    一:错误的分类

      Error:错误(不可控),一般指的是系统方面的异常,比如蓝屏,内存溢出,jvm运行环境出了问题。

      Exception:是可控的异常,程序员可以在编写程序时解决的错误。

      两者的父类为Throwable。

    二:可控制的异常

      Exception:是所有异常的父类,其下面可以派生出很多子类型。

    三:异常处理机制

      编写程序时,某一块代码可能会某些异常。我们应该对这块进行异常处理。怎么处理呢?使用如下语法:

        try{

        

        }catch(异常类型的声明){

        

        }finally{

        }

      进行处理,我们将可以出现异常的代码放到try{}中,jvm会进行检查try{}中的代码,如果有异常,jvm就会将异常信息封装成相应的异常对象,然后转移到catch(){}代码块中进行处理,执行{}中的逻辑,然后会执行finally模块中的代码,如果try模块中没有异常,最终也会执行finally的逻辑。

    四:catch代码块

        可以有1个或多个,在声明异常变量时,从上到下的catch块使用的异常类型可以是同级别的,如果多个异常类型有父子关系时,那么应该先写子异常,在写父异常。

        (先写父异常时,编译不通过)

    五:finally代码块

       finally代码块是有没有异常都会执行的,最后执行。通常用于关闭某些操作,删除临时文件等,当程序中有return关键字的时候,先执行return,再执行finally代码块。

    六:throw:抛出异常对象

       有时候,程序中捕获的异常,不想在catch代码块中处理。就要往外抛出,抛给调用(谁调用这个方法谁就是调用者)由调用者来处理。main中的异常最好直接处理

    七:throws

      在定义方法时,必须声明要抛出的异常对象的类型,就是声明通知调用要处理的异常类型。  

    八:异常的分类

      检查性异常(编译时异常)

        

        reg:
          
          ArrayIndexOutOfBoundsException
          StringIndexOutOfBOundsException
          ClassCastException
          NumberFormatException


      不要把ClassNotFoundException当成运行时异常在throw运行时异常对象时,方法处不需要声明throws,因为编译器会忽略运行时异常。当throw编译时异常时,必须在方法处声明throws此对象的类型。

    九:自定义异常

        只需要继承Exception,用系统提供的构造器即可。 

      

      

      

      

  • 相关阅读:
    uva 557 Burger
    uva 1639 Candy (对数处理精度)
    uva 10288 Coupons (分数模板)
    uva 12230 Crossing Rivers
    [USACO5.4] Telecowmunication
    epoll讲解--转自知乎
    多线程ExecutorService中submit和execute区别
    google Guava包的ListenableFuture解析
    git commit 时出现:please enter the commit message for your changes
    Git常用命令
  • 原文地址:https://www.cnblogs.com/lyr999736/p/9116685.html
Copyright © 2011-2022 走看看