一句话:
代码出现异常,抛出错误
另外一个人抓到错误信息,显示错误
异常基础知识
其中Throwable类的方法:
捕获异常
try{
//一堆可能会出现问题的代码
}catch(Exception e){//或者exception的子类,自定义异常类
//捕获到异常后需要做的事
}
// 文件名 : ExcepTest.java
import java.io.*;
public class ExcepTest{
public static void main(String args[]){
try{
int a[] = new int[2];
System.out.println("Access element three :" + a[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown :" + e);
}
System.out.println("Out of the block");
}
}
运行结果:
Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3
Out of the block
Throw和Throws
Finally
try-with-resources
自定义异常
1.写一个异常类,需要继承Throwable/Exception类
2.写一个方法/类,里面会出现自己所写的异常,
并且如果出现了就throw出去,还需要throws抛到调用它的代码
3.调用该方法(放在try块),catch住throw过来的
示例:取钱系统
1.写一个异常类,需要继承Throwable类
package 异常;
public class MoneyNotEnough extends Throwable{
int money;
MoneyNotEnough(int m){
this.money = m;
}
int getMoney() {
return money;
}
}
2.写一个方法/类,里面会出现自己所写的异常,
并且如果出现了就throw出去,还需要throws抛到调用它的代码
package 异常;
public class Bank {
int money;
public Bank(int m) {
this.money = m;
}
void deposit(int m) throws MoneyNotEnough {
int remain = money - m;
if(remain >= 0) {
money = remain;
System.out.println("取钱成功,剩余" + money);
}else {
throw new MoneyNotEnough(remain);
}
}
}
3.调用该方法(放在try块),catch住throw过来的
package 异常;
public class Test {
public static void main(String []args) {
Bank b = new Bank(1000);
try {
b.deposit(500);
b.deposit(600);
}catch(MoneyNotEnough e) {
System.out.println("取钱失败,还差"+e.getMoney()+"元");
e.printStackTrace();
}
}
}
结果