JavaSe第四天笔记小记

JavaSe第四天笔记小记

1、异常

程序运行中遇到的各种异常问题,即java中所说的“异常”,Exception

  • 指程序运行中出现的不期而遇的各种状况,例如文件找不到、网络连接错误、非法参数等
  • 异常发生在程序运行期间,它影响了正常的程序执行流程

异常的简单分类

异常体系框架

  • java把异常当作对象来处理,并定义一个基类,java.lang.Throwable作为所有异常的超类
  • java api中已经定义了许多异常类,这些异常类分成两大类,错误Error和异常Exception

  • Error类对象由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关
  • Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,JVM一般会选择线程终止;

Error和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常,JVM会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能去处理这些异常

异常处理机制

五个关键字:

  1. try:监控区域
  2. catch:捕获异常
  3. finally:处理善后工作,无论有没有捕获到异常都会执行
  4. throw:主动的抛出异常,一般在方法中使用
  5. throws:假设这个方法中,处理不了这个异常,那么在方法上抛出异常
try{   
  //(尝试运行的)程序代码   
}catch(异常类型 异常的变量名){   
  //异常处理代码   ,  可以写多个catch,范围从小到大
}finally{   
  //异常发生,方法返回之前,总是要执行的代码   // 可以不要finally
}  
public class Outer{
    public static void main(String[] args) {
        int a=1;
        int b = 0;

        // 在这里处理异常
        try {
            a(a, b);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    // 方法处理不了就再网上抛
    public static void a(int a, int b) throws Exception{
        // 如果不在方法里面处理异常,那么就必须往上抛!!把锅推给上层
        if(b == 0){
            throw new ArithmeticException("算数异常!!!");
        }

        System.out.println(a/b);

    }
}

自定义异常

// 自定义异常类,继承Exception类
public class MyException extends Exception{
    private int detail;

    public MyException(int detail){
        this.detail = detail;
    }

    public String toString(){
        return new String("MyException{" + detail + "}");
    }
}

实际开发中的经验总结

posted @ 2020-07-23 01:13  lorz5  阅读(128)  评论(0)    收藏  举报