zoukankan      html  css  js  c++  java
  • java基础异常捕获处理

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

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

    int  k;

    switch(i){

    case 0:

    int zero=0;

    k=911/zero;

    break;

    case1:

    int  b[]=null;

    k = b[0];

    break;

    case2:

    int c[]=new int[2];

    k=c[9];

    break;

    case3:

    char  ch="abc".charAt(99);

    break;

    }

    }

    public class TestException {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            for(int i=0;i<4;i++){
                int  k;
                
                    switch(i){
                    case 0:
                    int zero=0;
                    try{
                    k=911/zero;}
                    catch(Exception e)
                    {
                        System.out.println("捕获了异常"+e.getMessage());
                    }
                    break;
            
                    case 1:
            int  b[]=null;
        try{    
                k = b[0];
            }
        catch(Exception e)
        {
            System.out.println("捕获了异常"+e.getStackTrace());
        }
        
            break;
                    case 2:
            int c[]=new int[2];
    
            try{
                k=c[9];
                
            }
            catch(Exception e)
            {
                System.out.println("捕获了异常,我还能运行!");
            }
            break;
                    case 3:
                        try{
                                char ch="abc".charAt(99);
                            }
                        catch(Exception e)
                        {
                            System.out.println("终于抓完了,我快要到休息的时间啦");
                        }
            break;
                }
            }
            
        }
    
    }

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

    //自定义异常类
    public class InsufficientFundsException extends Exception {
        InsufficientFundsException(String a)
        {
            
        }
    //重写信息异常的方法
    @Override
        public String getMessage() {
            // TODO 自动生成的方法存根
            return "取款余额不足";
        }
    }
    // 自定义异常类
    public class NagativeFundsException extends Exception {
        NagativeFundsException(String n)
        {
            
        }
      
        @Override
        public String getMessage() {
            // TODO 自动生成的方法存根
            return  "存款余额为负数啦";
        }
    }
    public class Bank {
        private double balance;
    
        public double getBalance() {
            return balance;
        }
    
        public void setBalance(double balance) {
            this.balance = balance;
        }
        public Bank(double money)
        {
            balance+=money;
            
        }
        //声明抛出的异常
        public void withDrawal(double dAmount) throws 
    InsufficientFundsException,NagativeFundsException
        {
            if(dAmount > balance)
            {    //抛出自定义异常
                throw new InsufficientFundsException("取款余额不足");
            }
                    //抛出自定义异常
            else if(dAmount <0)
            {
                throw new NagativeFundsException("取款余额为负数啦");
            }
        
        }
    }    
        public static void main(String[] args) throws InsufficientFundsException, NagativeFundsException {
            // TODO 自动生成的方法存根
                Bank b = new Bank(100.0);
                b.withDrawal(150);
                b.withDrawal(-15);
        }
    
    }

  • 相关阅读:
    Java 字节流操作2
    Java 字节流操作1
    推荐 33 个 IDEA 最牛配置,让你效率提高10倍!
    Spring线程池ThreadPoolTaskExecutor的配置和使用
    python3——跨文件调用模块
    python3+selenium3——打开无界面的Chrome浏览器
    python学习——print和return的区别
    python3+mysql学习——mysql查询语句写入csv文件中
    python3+selenium3发送最新报告
    python学习——读取csv文件报错:“UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 5: illegal multibyte sequence”
  • 原文地址:https://www.cnblogs.com/miracle-0807/p/5901836.html
Copyright © 2011-2022 走看看