java异常机制

JAVA学习网 2021-04-03 19:56:02

1. 什么是异常

  • 异常(Exception) :指程序运行中出现的各种状况 如文件找不到,网络连接失败,非法参数等
  • 异常发生在程序运行期间,影响了正常的程序执行流程

简单分类

  • 检查性异常

    最具代表的是用户错误问题引起的异常,是我们无法预见的,编译时不能被忽略;

  • 运行时异常:可以在编译时被忽略

  • 错误ERRoR:不是异常,脱离控制,编译也检查不到的

2. 异常体系结构

  • Java定义了一个基类java.lang.Throwable 作为所有异常的超类

  • 分为两大类:错误Error和异常Exception

  • Error和Exception的区别:

    • Error通常是灾难性的致命的错误,是程序无法控制的,当出现这些异常时,Java虚拟机(JVM)一般会终止线程;
    • Exception 通常情况下是可以被程序处理的,应尽可能的去处理这些异常

3. java 异常处理机制

  • 抛出异常

  • 捕获异常

  • 异常处理的五个关键字

    • try , catch ,finally ,throw,throws

      • try ...catch ... finally 捕获多个异常,从小到大

        try{//监控区域
            
        }catch(Exception e){ //catch(想要捕获的异常类型)捕获异常
            System.out.print("异常,除数不能为0");
        }finally{//最后一定会输出 处理善后  可选,用于资源的关闭
            System.out.print("finally");
        }
        
        • throw 手动抛出异常对象

          class Number{
              int num;
              public void step(){
                  if(num<0){
                      throw new RuntimeException("数据错误!");
                  }
              }
          }
          
        • throws

          • ”throws +异常类型“ 在方法声明处,指明方法执行时,可能会抛出的异常类型

          • 此方式只是将异常抛给了方法的调用者,并未真正处理掉异常

            class Person{
                public void resgit() throws Exception{
                    System.out.print("输出");
                }
            }
            

4.自定义异常类

  • 继承现有的异常结构:RuntimeException 、Exception
  • 提供全局常量 :serialVersionUID
  • 提供重载的构造器

5.经验总结

  • 处理运行时异常时,采用逻辑合理规避同时辅助使用try-catch 处理

  • 在多个catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常

  • 尽量去处理异常,而不是简单的调用printStackTrace去打印输出

  • 对于资源读写,添加finally语句块去释放资源

阅读(1110) 评论(0)