zoukankan      html  css  js  c++  java
  • 异常处理

    实验四 异常处理

    1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。

     

    for(inti=0;i<4;i++){
        intk;
        switch(i){
            case0:intzero=0;k=911/zero;break;
            case1:intb[]=null;k?=b[0];break;
            case2:int c[]=new int[2];k=c[9];break;
            case3:charch="abc".charAt(99);break;
        }
    }
    package Exception;
    public class TestException {
        public static void main(String[] args){
            for(int i=0;i<4;i++){
                try{
                    int k;
                    switch(i){
                    case 0: int zero=0;k=911/zero;break;
                    case 1: int b[]=null;k=b[0];break;
                    case 2: int c[]=new int[2];k=c[9];break;
                    case 3: char ch="abc".charAt(99);break;
                    }
                }
                catch(ArithmeticException e){
                    System.out.println(e.getMessage());
                    }
                catch(java.lang.NullPointerException e){
                    System.out.println(e.getMessage());
                    }
                catch(ArrayIndexOutOfBoundsException e){
                    System.out.println(e.getMessage());
                    }
                catch(java.lang.StringIndexOutOfBoundsException e){
                    System.out.println(e.getMessage());
                    }
            }
        }
    }

    运行结果:

    / by zero

    null

    9

    String index out of range: 99

    2.建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),表示存入银行100元,当用方法withdrawal(150),withdrawal(-15)时会抛出自定义异常。

     提示: InsufficientFundsException,NagativeFundsException为自定义的类,分别产生余额不足异常和取款为负数异常,需继承Exception类。

    通过输出结果了解java异常的产生,并将该Java程序放在exception包中。

    package Exception;//注解先建立一个package,然后在包中建立各种类

    public class InsufficientFundsException extends Exception{

           String s1;

           InsufficientFundsException(String t){

                  s1=t;

           }

      public String getMassage1(){

             return s1;

      }

    }

    package Exception;

    public class NagativeFundsException extends Exception{

           String s;

           NagativeFundsException(String t){

                  s=t;

           }

      public String getMassage(){

             return s;

      }

    }

    package Exception;

    public class Bank extends Exception{

           static double ba=0;

           Bank(double r){

             ba=ba+r;

        }

           void withDrawal(double dAmount) throws InsufficientFundsException,NagativeFundsException{

                    if(dAmount>ba) throw new InsufficientFundsException("取款余额不足");

                    else  if(dAmount<0) throw new NagativeFundsException("取款为负数");

                    else

                           System.out.print("银行里还剩余:"+(ba-dAmount));

            }

    }

    package Exception;

    import java.util.*;

    public class A{

     public static void main(String args[] ){

           Bank b=new Bank(100);

           Scanner sc=new Scanner(System.in);

           try  {

                  System.out.println("请输入一个数");

                  b.withDrawal(sc.nextInt());

           }

           catch(InsufficientFundsException e){

                  System.out.println(e.getMassage1());

           }

           catch(NagativeFundsException e){

                  System.out.println(e.getMassage());

           }

     }

    }    

    运行结果:

    请输入一个数

    80

    银行里还剩余:20.0

    for(inti=0;i<4;i++){

           intk;

           switch(i){

                  case0:intzero=0;k=911/zero;break;

                  case1:intb[]=null;k?=b[0];break;

                  case2:int c[]=new int[2];k=c[9];break;

                  case3:charch="abc".charAt(99);break;

           }

    }

    package Exception;

    public class TestException {

           public static void main(String[] args){

                  for(int i=0;i<4;i++){

                         try{

                                int k;

                                switch(i){

                                case 0: int zero=0;k=911/zero;break;

                             case 1: int b[]=null;k=b[0];break;

                             case 2: int c[]=new int[2];k=c[9];break;

                                case 3: char ch="abc".charAt(99);break;

                                }

                         }

                         catch(ArithmeticException e){

                                System.out.println(e.getMessage());

                                }

                         catch(java.lang.NullPointerException e){

                                System.out.println(e.getMessage());

                                }

                         catch(ArrayIndexOutOfBoundsException e){

                                System.out.println(e.getMessage());

                                }

                         catch(java.lang.StringIndexOutOfBoundsException e){

                                System.out.println(e.getMessage());

                                }

                  }

           }

    }

    运行结果:

    / by zero

    null

    9

    String index out of range: 99

  • 相关阅读:
    实验十四
    2
    解一元二次方程
    第一题
    输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名
    实验九
    实验8数组2 1.程序调试
    实验七4编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
    实验10 指针2
    作业4
  • 原文地址:https://www.cnblogs.com/hanruyue/p/5901606.html
Copyright © 2011-2022 走看看