特别管理形式

by admin on 2019年5月23日

壹、基础概念

异常,

壹 极度概述

  • 老大是在运维时期发生的不符合规律的情状。

 

  • 在java中,用类的格局对不健康的情状张开了描述和打包对象,描述不正规境况的类称为充裕类。

  • 先前不奇怪流程代码和主题材料代码相结合,今后将不荒谬流程代码和难题管理代码分离,进步了阅读性。

 

  • 其实,分外正是java通过面向对象的沉思将难点封装成对象。

一 至极概述

  • 丰富是在运转时期爆发的不健康的状态。

 

  • 在java中,用类的样式对不正规的动静打开了描述和包裹对象,描述不符合规律状态的类称为极度类。

  • 以前符合规律流程代码和难点代码相结合,今后将平日流程代码和主题素材管理代码分离,提升了阅读性。

 

  • 实际,分外就是java通过面向对象的思维将标题封装成对象。

  (1)异常:Java程序在运营时代爆发的不寻常状态。

① 相当概述

  • 那一个是在运作时期爆发的不正规的情形。

 

  • 在java中,用类的花样对不正常的事态进行了描述和包装对象,描述不健康情况的类称为那3个类。

  • 开端符合规律流程代码和难题代码相结合,未来将平常流程代码和主题材料管理代码分离,进步了阅读性。

 

  • 实则,非常正是java通过面向对象的思辨将标题封装成对象。

二 分外体系

  • 那三个类别,正是那多少个诸多,描述相当的类也大多,将其共性进行了抽出,就形成了系统。

 

  • 至极体系布局图如下所示:

bf88必发唯一官网 1

  • Throwable:无论是Error照旧Exception,一般发生难点就相应能够抛出,让调用者知道并拍卖。该系统的天性就在于Throwable及其具备的子类都兼备可抛性。其实正是由此throws和throw七个主要字呈现的,凡是被那三个首要字所操作的类和指标都有着可抛性。
  • Error:是由JVM抛出的主要难点。这种难点假诺发生一般不针对处理。
  • Exception:能够拍卖。

特别管理形式。 

二 万分系列

  • 非常系列,就是10分大多,描述至极的类也多数,将其共性实行了收取,就产生了系统。

 

  • 这多少个类别布局图如下所示:

bf88必发唯一官网 2

  • Throwable:无论是Error依然Exception,一般产生难题就应有能够抛出,让调用者知道并管理。该系统的特征就在于Throwable及其全体的子类都具有可抛性。其实就是经过throws和throw四个关键字显示的,凡是被那四个关键字所操作的类和目的都独具可抛性。
  • Error:是由JVM抛出的重视难点。这种题材借使发生一般不针对管理。
  • Exception:可以管理。

 

     Java就根据面向对象的思量对不寻常情形举办描述和对象的包装。

二 极度类别

  • 十分种类,就是13分繁多,描述相当的类也繁多,将其共性进行了收取,就产生了系统。

bf88必发唯一官网 , 

  • 不行体系布局图如下所示:

bf88必发唯一官网 3

  • 特别管理形式。Throwable:无论是Error依旧Exception,一般发生难题就活该能够抛出,让调用者知道并拍卖。该类别的特色就在于Throwable及其具备的子类都持有可抛性。其实正是通过throws和throw多个非常重要字显示的,凡是被那八个非常重要字所操作的类和对象都怀有可抛性。
  • Error:是由JVM抛出的要害问题。这种难点若是发生一般不对准管理。
  • Exception:能够拍卖。

 

3 相当的规律

  •  示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */
      class Demo{
      public void method(int[] arr,int index){

       System.out.println(arr[index]);
      

      }
      }
      public class ExceptionDemo {
      public static void main(String[] args) {

       int[] arr = new int[3];
       Demo d = new Demo();
       d.method(arr,3);
      

      }
      }

bf88必发唯一官网 4

三 非凡的法则

  •  示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */
      class Demo{
      public void method(int[] arr,int index){

       System.out.println(arr[index]);
      

      }
      }
      public class ExceptionDemo {
      public static void main(String[] args) {

       int[] arr = new int[3];
       Demo d = new Demo();
       d.method(arr,3);
      

      }
      }

bf88必发唯一官网 5

  (2)分外难题分类: (Throwable:定义对于难点共性的法力。)

三 格外的原理

  •  示例:

package java011;

/**
 * 2017/9/15
 * 说明:
 */
class Demo{
    public void method(int[] arr,int index){
        System.out.println(arr[index]);
    }
}
public class ExceptionDemo {
    public static void main(String[] args) {
        int[] arr = new int[3];
        Demo d = new Demo();
        d.method(arr,3);
    }
}

bf88必发唯一官网 6

四 非常对象的抛出

  • 示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */
      class Demo{
      public int method(int[] arr,int index){

       if(index<0){
           throw new RuntimeException("索引不能小于0");
       }
       if(arr == null || arr.length <=0){
           throw new RuntimeException("数组为空或者数组的长度为0");
       }
       if(arr.length <=index){
           throw new ArrayIndexOutOfBoundsException("数组越界"+index);
       }
       return arr[index];
      

      }
      }
      public class ExceptionDemo {
      public static void main(String[] args) {

       int[] arr = new int[3];
       Demo d = new Demo();
       int result = d.method(arr,3);
       System.out.println("结果是:"+result);
      

      }
      }

 

四 极度对象的抛出

  • 示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */
      class Demo{
      public int method(int[] arr,int index){

       if(index<0){
           throw new RuntimeException("索引不能小于0");
       }
       if(arr == null || arr.length <=0){
           throw new RuntimeException("数组为空或者数组的长度为0");
       }
       if(arr.length <=index){
           throw new ArrayIndexOutOfBoundsException("数组越界"+index);
       }
       return arr[index];
      

      }
      }
      public class ExceptionDemo {
      public static void main(String[] args) {

       int[] arr = new int[3];
       Demo d = new Demo();
       int result = d.method(arr,3);
       System.out.println("结果是:"+result);
      

      }
      }

 

     一.Error:由系统底层爆发的,jvn告诉使用者。不做针对性管理,直接修改代码。

4 万分对象的抛出

  • 示例:

package java011;

/**
 * 2017/9/15
 * 说明:
 */
class Demo{
    public int method(int[] arr,int index){
        if(index<0){
            throw new RuntimeException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args) {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = d.method(arr,3);
        System.out.println("结果是:"+result);
    }
}

 

5 自定义极其&异常类的抛出(throws)

package java011;

/**
 * 2017/9/15
 * 说明:
 */

/**
 * 负数角标异常
 */
class FuShuIndexException extends Exception{
    public FuShuIndexException(String str){
        super(str);
    }
}



class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args) throws FuShuIndexException {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = d.method(arr,3);
        System.out.println("结果是:"+result);
    }
}

 

5 自定义十二分&非凡类的抛出(throws)

package java011;

/**
 * 2017/9/15
 * 说明:
 */

/**
 * 负数角标异常
 */
class FuShuIndexException extends Exception{
    public FuShuIndexException(String str){
        super(str);
    }
}



class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args) throws FuShuIndexException {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = d.method(arr,3);
        System.out.println("结果是:"+result);
    }
}

 

     二.Exception:发生并报告使用者,能够展开针对的管理。

5 自定义拾一分&万分类的抛出(throws)

package java011;

/**
 * 2017/9/15
 * 说明:
 */

/**
 * 负数角标异常
 */
class FuShuIndexException extends Exception{
    public FuShuIndexException(String str){
        super(str);
    }
}



class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args) throws FuShuIndexException {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = d.method(arr,3);
        System.out.println("结果是:"+result);
    }
}

 

陆 卓越的归类

  • 格外的归类
    • 1编写翻译时被检验极度:只要Exception和其子类都以,除了RuntimException连串。这种主题材料借使出现,希望在编写翻译的时候就展开检查测试,让这种难点有相应的管理情势。那样的标题都得以针对的拍卖。
    • 二运行时丰富:RuntimeException种类。这种主题素材的产生,不能让效果继续,运算不能展开,越来越多是因为调用者的原故导致的可能当中景色的改造导致的。这样的题目一般不针对管理,间接编写翻译通过,运营时,让调用者调用的顺序强制结束。  

 

陆 要命的分类

  • 分外的分类
    • 壹编写翻译时被检验至极:只要Exception和其子类都以,除了RuntimException连串。这种难题假如出现,希望在编写翻译的时候就开始展览检查测试,让这种主题材料有对应的管理格局。那样的主题素材都能够本着的拍卖。
    • 二运营时十二分:RuntimeException连串。这种难题的发生,无法让职能继续,运算不能开始展览,更加多是因为调用者的彻彻底底的经过形成的要么在那之中情形的改变导致的。那样的主题素材一般不对准管理,直接编写翻译通过,运营时,让调用者调用的程序强制甘休。  

 

  (3)非凡的拍卖景况

陆 百般的分类

  • 可怜的分类
    • 一编写翻译时被检验卓殊:只要Exception和其子类都以,除了RuntimException种类。这种主题材料假若出现,希望在编写翻译的时候就打开检验,让这种主题材料有照应的管理格局。那样的难点都足以本着的管理。
    • 2运作时丰富:RuntimeException种类。这种难点的发出,无法让职能继续,运算不能够进行,更加多是因为调用者的来由促成的依旧个中景色的改变导致的。那样的难点一般不针对管理,直接编写翻译通过,运行时,让调用者调用的先后强制截止。  

 

7 throw和throws的区别?

  • 壹throw使用在函数上,throw使用在函数内。
  • 贰throws抛出的是丰盛类,能够抛出多个,用逗号隔开分离。throw抛出的可怜对象。

 

7 throw和throws的区别?

  • 一throw使用在函数上,throw使用在函数内。
  • 2throws抛出的是极度类,能够抛出四个,用逗号隔离。throw抛出的不胜对象。

 

    1.遭遇问题不开始展览实际的拍卖,继续抛给调用者。正是在函数上经过throws关键字声明格外。目标是让调用者能够展开始拍片卖。

7 throw和throws的区别?

  • 1throw使用在函数上,throw使用在函数内。
  • 贰throws抛出的是老大类,可以抛出五个,用逗号隔开分离。throw抛出的不胜对象。

 

八 可怜的捕获

  • 异常捕获的格局

    try{

    }catch(异常类 变量){

    }finally{

    }

 

  • 示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */

    /**

    • 负数角标至极
      */
      class FuShuIndexException extends Exception{
      public FuShuIndexException(String str){

       super(str);
      

      }
      }

class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args)  {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = 0;
        try {
            result = d.method(arr,3);
        } catch (FuShuIndexException e) {
            e.printStackTrace();
        }
        System.out.println("结果是:"+result);
    }
}

 

八 13分的抓获

  • 老大捕获的秘籍

    try{

    }catch(异常类 变量){

    }finally{

    }

 

  • 示例:

    package java011;

    /**

    • 2017/9/15
    • 说明:
      */

    /**

    • 负数角标格外
      */
      class FuShuIndexException extends Exception{
      public FuShuIndexException(String str){

       super(str);
      

      }
      }

class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args)  {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = 0;
        try {
            result = d.method(arr,3);
        } catch (FuShuIndexException e) {
            e.printStackTrace();
        }
        System.out.println("结果是:"+result);
    }
}

 

    ②.对准的管理形式:捕获!
      try
      {
      //有十分的大希望爆发非常的代码。
      }
      catch(异常类 变量)
      {
      //那是真正的破获,管理特其余代码;
      }
      finally
      {
      //一定会被施行的代码。
      }

八 格外的捕获

  • 极其捕获的方式

try{

}catch(异常类 变量){

}finally{

}

 

  • 示例:

package java011;

/**
 * 2017/9/15
 * 说明:
 */

/**
 * 负数角标异常
 */
class FuShuIndexException extends Exception{
    public FuShuIndexException(String str){
        super(str);
    }
}



class Demo{
    public int method(int[] arr,int index) throws FuShuIndexException {
        if(index<0){
            throw new FuShuIndexException("索引不能小于0");
        }
        if(arr == null || arr.length <=0){
            throw new RuntimeException("数组为空或者数组的长度为0");
        }
        if(arr.length <=index){
            throw new ArrayIndexOutOfBoundsException("数组越界"+index);
        }
        return arr[index];
    }
}
public class ExceptionDemo {
    public static void main(String[] args)  {
        int[] arr = new int[3];
        Demo d = new Demo();
        int result = 0;
        try {
            result = d.method(arr,3);
        } catch (FuShuIndexException e) {
            e.printStackTrace();
        }
        System.out.println("结果是:"+result);
    }
}

 

9 充裕处理的尺码

  • 一函数里面假设抛出必要检测的老大,那么函数上必须注解。不然,必须在函数内部捕获,借使又不证明,又不抓获,那么会编写翻译战败。
  • 贰一旦调用到了声称十分的函数,要么捕获要么throws,不然编写翻译退步。
  • 三假设效果内容能够化解的,用catch,化解不了的,用throws告诉调用者,由调用者化解。
  • 4三个只要效果一旦抛出了四个可怜,那么调用的时候必须有相应的八个catch举办针对性的管理或直接catch(Exception
    e)。

 

玖 相当管理的条件

  • 壹函数里面若是抛出供给检查测试的非常,那么函数上必须注明。不然,必须在函数内部捕获,如若又不评释,又不抓获,那么会编写翻译失败。
  • 二一旦调用到了声称十分的函数,要么捕获要么throws,不然编译败北。
  • ③倘诺效果内容能够减轻的,用catch,消除不了的,用throws告诉调用者,由调用者化解。
  • 41个只要效果一旦抛出了四个11分,那么调用的时候必须有对应的多少个catch进行针对性的管理或直接catch(Exception
    e)。

 

 

九 要命管理的规则

  • 1函数里面假若抛出要求检查评定的极度,那么函数上必须评释。不然,必须在函数内部捕获,假使又不申明,又不抓获,那么会编写翻译战败。
  • 贰1旦调用到了注解卓殊的函数,要么捕获要么throws,不然编写翻译战败。
  • 3要是效果内容能够消除的,用catch,化解不了的,用throws告诉调用者,由调用者消除。
  • 肆2个假使效果壹旦抛出了三个拾壹分,那么调用的时候必须有相应的五个catch进行针对的拍卖或间接catch(Exception
    e)。

 

10 至极的注意事项

  • 子类在覆盖父类方法的时候,父类的方式假使抛出了至极,那么子类的方法只好抛出父类的可怜恐怕该非常的子类。
  • 比方父类抛出八个特别,那么子类只可以抛出父类万分的子集。

 

十 相当的注意事项

  • 子类在覆盖父类方法的时候,父类的形式借使抛出了充裕,那么子类的方法只可以抛出父类的那多少个大概该特别的子类。
  • 即便父类抛出七个极度,那么子类只可以抛出父类至极的子集。

 

 二、虚拟机管理特别代码

十 非常的注意事项

  • 子类在覆盖父类方法的时候,父类的办法若是抛出了十分,那么子类的办法只好抛出父类的老大或许该非常的子类。
  • 假诺父类抛出多少个可怜,那么子类只好抛出父类异常的子集。

 

一 分外概述 相当是在 运维时期产生的不符合规律的情事。
在java中,用类的情势对不健康的事态张开了描述和打包对象,描述不正规情…

 1 class Demo
 2 {
 3     int div(int a,int b)throws Exception//声明异常Exception
 4     {
 5         return a/b;
 6     }
 7 }
 8     
 9 class ExceptionDemo1
10 {
11     public static void main (String[] arge)throws Exception//将异常Exception抛给虚拟机处理
12     {
13         Demo d = new Demo();
14         int num = d.div(4,0);
15         System.out.println("num="+num);
16         System.out.println("over");
17     }
18 }

  bf88必发唯一官网 7

 3、捕获处理特别代码(贰)

 1 class Demo
 2 {
 3     int div(int a,int b)throws Exception//声明异常Exception
 4     {    
 5         return a/b;//throw new ArithmeticException("/ by zero")抛给调用者。
 6     }
 7 }
 8     
 9 class ExceptionDemo1
10 {
11     public static void main (String[] arge)
12     {
13         Demo d = new Demo();
14         
15         //对异常进行处理
16         try
17         {
18             int num = d.div(4,0);
19             System.out.println("num="+num);
20         }
21         catch(Exception e)
22         {
23             //处理这个对象,可以使用该对象的方法。
24             System.out.println("处理异常的代码:除数不能为0");
25             System.out.println(e.getMessage());//异常信息
26             System.out.println(e.toString());//异常名称+异常信息
27             e.printStackTrace();//异常名字+异常信息+位置。jvm默认处理收到异常就是调用这个方法。将信息显示在屏幕上。
28         }
29         System.out.println("over");
30     }
31 }

  bf88必发唯一官网 8

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图