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

     1 package com.oracle.demo01;
     2 //Throwable 的子类错误  Error:一旦发生,不可处理,只能修改代码,返回给jvm,结束程序的运行
     3 //Throwable 的子类异常 Expection
     4 //1.Expection编译期异常:可以处理
     5 //2.runtimeExpection运行期异常,不可处理,相当于Error
     6 public class Demo01 {
     7     public static void main(String[] args) {
     8         //  int[] arr=new int[10000000000];
     9     }
    10   }

    将异常交给调用者处理  try-----catch----finally

     1 package com.oracle.demo01;
     2                                                 //终止程序,打印异常信息
     3 public class Demo02 {
     4 public static void main(String[] args){//4.抛给虚拟机
     5     int[] arr={};
     6     try{//可能会发生异常的代码
     7         int a=get(arr);//3.调用者知道错误(最好交由调用者处理异常)try---catch{接受throws异常}---finally{释放资源代码,一定会执行}
     8         System.out.println(a);
     9     }catch(Exception ex){//异常类  变量名    3.捕获到异常
    10         //一旦发生异常,才执行
    11         ex.printStackTrace();//调用jvm虚拟机中的打印方法
    12         //System.out.println("出现数组越界异常");
    13     }finally{
    14         //不管是否有异常,均会执行
    15         System.out.println("一定会执行的代码");
    16     }
    17     System.out.println("正常执行余下的程序");
    18 }
    19 public static int get(int[] arr) throws Exception{//2.throws进行声明,让调用者去处理
    20     if(arr.length==0){
    21         //编译期异常(调用者处理,或虚拟机处理)
    22         throw new Exception();//1.抛出异常,但还没有被捕获处理
    23     }
    24     int i=arr[3];//jvm检测到异常,创建对应的异常对象, new Arrayindexoutofboundsexpection();但没有能处理它的方式
    25                  //往上抛给调用者,main方法中get(),又没有处理异常的方式,再往上抛给虚拟机
    26                  //终止程序,不再往下运行
    27                  //以红字的形式,将异常对象,异常信息,异常位置打印到控制台。
    28     return i;
    29 }
    30 }

    父类异常放在子类异常的下边处理

     1 package com.oracle.demo01;
     2                                                 //终止程序,打印异常信息
     3 public class Demo03 {
     4 public static void main(String[] args) throws Exception {//4.抛给虚拟机
     5     int[] arr={1,2,3};
     6     try{//可能会发生异常的代码
     7         int a=get(arr);//3.调用者知道错误(最好交由调用者处理异常)try---catch{接受throws异常}---finally{释放资源代码,一定会执行}
     8         System.out.println(a);
     9     }catch(ArrayIndexOutOfBoundsException ex){//子类异常放上面
    10         
    11     }catch(NullPointerException ex){//子类异常放上面
    12         
    13     }//父类异常放最下边
    14     catch(Exception ex){//异常类  变量名    3.捕获到异常
    15         //一旦发生异常,才执行
    16         ex.printStackTrace();//调用jvm虚拟机中的打印方法
    17         //System.out.println("出现数组越界异常");
    18     }finally{
    19         //不管是否有异常,均会执行
    20         System.out.println("一定会执行的代码");
    21     }
    22     System.out.println("正常执行余下的程序");
    23 }
    24 public static int get(int[] arr) throws Exception,NullPointerException,
    25 ArrayIndexOutOfBoundsException{//2.throws进行声明,让调用者去处理
    26     if(arr.length==0){
    27         //编译期异常(调用者处理,或虚拟机处理)
    28         throw new ArrayIndexOutOfBoundsException();//1.抛出异常,但还没有被捕获处理
    29     }
    30     if(arr==null){
    31         throw new NullPointerException();
    32     }
    33     if(arr.length<3){//这个方法针对下面取arr[3]是否能成功
    34         throw new Exception();
    35     }
    36     int i=arr[3];//jvm检测到异常,创建对应的异常对象, new Arrayindexoutofboundsexpection();但没有能处理它的方式
    37                  //往上抛给调用者,main方法中get(),又没有处理异常的方式,再往上抛给虚拟机
    38                  //终止程序,不再往下运行
    39                  //以红字的形式,将异常对象,异常信息,异常位置打印到控制台。
    40     return i;
    41 }
    42 }
  • 相关阅读:
    win10 UWP button
    内网分享资源
    内网分享资源
    CF724F Uniformly Branched Trees
    win10 UWP FlipView
    win10 UWP FlipView
    win10 UWP FlipView
    搭建阿里云 centos mysql tomcat jdk
    搭建阿里云 centos mysql tomcat jdk
    win10 UWP 申请微软开发者
  • 原文地址:https://www.cnblogs.com/mlf19920916/p/12155098.html
Copyright © 2011-2022 走看看