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

    1. 异常简介

      Java异常时Java提供的识别响应错误的机制,可以使程序中异常处理代码和正常业务代码分离,提高程序的健壮性。

    public class ExceptionTest01{
        public static void main(String[] args){
            try{
                int i = 10 / 0;
                System.out.println("i = " + i);
            }catch(ArithmeticException e){
                e.printStackTrace();
            }
        }
    }
    运行结果:
    java.lang.ArithmeticException: / by zero
            at ExceptionTest01.main(ExceptionTest01.java:5)

      Java中可抛出的异常(Throwable)分为三类:编译时异常,运行时异常和错误

      Throwable是Java中所有异常和错误的父类。

      (1)编译时异常:Exception类本身,和“运行时异常”之外的其他子类

        编译时异常要求在编译阶段进行处理,不处理则编译不通过。

      (2)运行时异常:RuntimeException及其子类

        在编译阶段可处理可以不处理,可以通过throws声明抛出,也可以try-catch捕获异常

      (3)错误

        当资源不足,约束失败,或是其他程序无法继续运行的条件发生时,就会产生错误。

        所有异常都是发生在运行阶段的,发生异常会new对象,在编译阶段不会创建对象。

    2. 异常方法的覆盖

      子类中不能比父类抛出更广泛的异常

    public class ExceptionTest02{
        public static void main(){
            
        }
    }
    
    class Animal{
        public void doSome(){
            System.out.println("animal do something");
        }
    }
    
    class Cats extends Animal{
        /*  可以不抛出异常
        public void doSome(){
            System.out.println("animal do something");
        }
        */
        
        public void doSome() throws FileNotFoundException{
            System.out.println("animal do something");  //错误: Cats中的doSome()无法覆盖Animal中的doSome()
        }
    }

      

    3. 自定义异常

      a. 自定义异常类继承Exception;

      b. 重写无参数和有参数构造方法;

    public class MyException extends Exception{
        public MyException(){}
        
        public MyException(String s){super(s);}
    }
  • 相关阅读:
    深(爆)搜专题整理
    牛客CSP-S提高组赛前集训营1 T2:乃爱与城市拥挤程度
    [BZOJ3743][Coci2015]Kamp 题解
    CSP2019-S,J初赛游记
    指针复习
    二叉树复习
    最短路复习
    数据库关联查询与模型之间的关联
    数据库操作Flask-SQLAlchemy之模型声明及数据库表的生成与删除
    csrf攻击防范
  • 原文地址:https://www.cnblogs.com/homle/p/15507045.html
Copyright © 2011-2022 走看看