异常的处理方式:
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/
转载文章受原作者版权保护。转载请注明原作者出处!