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

    异常的继承体系
       
    异常体系:
        Throwable
            |--Error
            |--Exception
                |--RuntimeException
     
     
    1.异常的注意事项:
        在子父类覆盖时:
        1,子类抛出的异常必须是父类的异常的子类或者子集
        2,如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛
     
    2.异常输出的相关方法和输出信息
    System.out.println(e.getMessage());// / by zero;
      System.out.println(e.toString());// 异常名称 : 异常信息。
     
      e.printStackTrace();//异常名称,异常信息,异常出现的位置。
      //其实jvm默认的异常处理机制,就是在调用printStackTrace方法。
      //打印异常的堆栈的跟踪信息。
     
    3.finally语句的执行
         finally语句在任何情况下都必须执行的代码,这样可以保证一些在任何情况下都必须执行代码的可靠性。
         比如,在数据库查询异常的时候,应该释放JDBC连接等等。finally语句先于return语句执行,而不论其先后位置,也不管是否try块出现异常。
         finally语句唯一不被执行的情况是方法执行了System.exit()方法。System.exit()的作用是终止当前正在运行的 Java 虚拟机。
         finally语句块中不能通过给变量赋新值来改变return的返回值,也建议不要在finally块中使用return语句,没有意义还容易导致错误。
     
    4.异常的区分
    Exception类可以分为两种:运行时异常和受检查异常。
    1、运行时异常
    RuntimeException类及其子类都被称为运行时异常,这种异常的特点是Java编译器不去检查它,
         也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。例如,当除数为零时,就会抛出java.lang.ArithmeticException异常。
     
    之所以不用在函数上声明,是因为不需要让调用者处理,当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望程序停止后由程序员对代码进行修正
     
    2、受检查异常
    除了RuntimeException类及其子类外,其他的Exception类及其子类都属于受检查异常,这种异常的特点是要么用try...catch捕获处理,要么用throws语句声明抛出,否则编译不会通过。
    3、两者的区别
    运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误的操作。一旦出现错误,建议让程序终止。
    受检查异常表示程序可以处理的异常。如果抛出异常的方法本身不处理或者不能处理它,那么方法的调用者就必须去处理该异常,否则调用会出错,连编译也无法通过。当然,这两种异常都是可以通过程序来捕获并处理的。
     
    5.Java异常处理的原则和技巧
    1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。
    2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
    3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
    4、不要把自己能处理的异常抛给别人。
    5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。
     
    6.异常常用的一些方法
         

         
         
     
    7.列举一些常见的异常
         编译期异常:(在写代码时,eclipse会报错的问题)
              NoSuchMethodException:找不到此方法,
              ClassNotFoundException :找不到此类
         运行时异常:(在运行时出现的异常, 会中断程序,往往是因为代码的健壮性不足引起的)
              NullPointerException     空指针异常
              ArithmeticException     除零异常
              ClassCastExcepiton      类型转换异常
              IllegalArgumentException      不合法的参数异常,不正确的参数异常
              InputMismatchException      输入参数格式错误异常,常见于Scanner的输入中
              IndexOutOfBoundsException     下标越界异常
     
     
     
     
     
     
     
     
     
     
     
     
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(zxy.hope@gmail.com)咨询.
  • 相关阅读:
    解决SharePoint 文档库itemadded eventhandler导致的上传完成后,编辑页面保持报错的问题,错误信息为“该文档已经被编辑过 the file has been modified by...”
    解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.
    随机实例,随机值
    Spring4笔记
    struts2笔记(3)
    struts2笔记(2)
    获取文本的编码类型(from logparse)
    FileUtil(from logparser)
    DateUtil(SimpleDateFormat)
    struts2笔记
  • 原文地址:https://www.cnblogs.com/anzhi/p/7443534.html
Copyright © 2011-2022 走看看