异常

异常的处理方式:

1.JVM处理

JVM处理异常的过程:

​ 1).打印异常的信息 2).显示出异常的位置 3.)停止了程序

2.自己处理

try{}catch{}finally{}

public class Test {
    public static void main(String[] args) {
        ATM atm = new ATM(20000);
        Scanner sc = new Scanner(System.in);
        // while(true){
        for (int i = 0; i < 5; i++) {
            System.out.println("请输入取钱金额:");
            int num = 0;
            try {
                num = sc.nextInt();
                atm.drawMoney(num);//在调用该方法的时候 不能超过余额 不能输入负数 不能够输入非数字字符
                System.out.println("恭喜你,取钱成功!本次取钱金额为:" + num + "剩余金额:" + atm.getCashBalance());
            } catch (InputMismatchException input) {//这个异常还需要导包...

                System.out.println("请输入整数");
                sc.next();//利用next的功能 清楚缓存
                continue;
            } catch (Exception e) {
                System.out.println(e.getMessage());
                sc.next();
                continue;//本次有异常 不执行本次后面的代码
            }
            System.out.println("是否退出Y/N");
            if ("y".equalsIgnoreCase(sc.next()))break;
        }
        //}
    }
}

try catch执行流程

  • catch 中的异常 父类需要放最后 否则catch子类将无意义
  • 一旦异常被catch 将不会影响 try catch之后的代码 执行 throw 和 throws

该方式是自己当前不做处理 谁调用我 谁处理 没人处理交给JVM处理

throw: 利用throw关键字 在方法体中 产生一个异常

throws:在方法声明的后面 抛出异常,该异常有可能存在/不存在

通过翻看源码可知:”所有”异常的都是继承自Trowable且没有重写父类方法

定义异常的意义:见名知意 . 异常发生时 通过异常类的信息快速锁定是发生了什么异常

自定义异常 就是让自己定义的类继承 Exception 或 RuntimeException 重写构造 可以根据需求重写方法

Original: https://www.cnblogs.com/acman-mr-lee/p/16361096.html
Author: ACMAN-Mr.Lee
Title: 异常

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644521/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球