找出程序报错,但是可以顺利通过,源程序报错了就按照你规定的执行某流程,不报错就正常进行。
举个栗子
int number = Interger.parseInt("123abc")
上面这句代码直接在运行中实际上会报错的。
而且错误抛出叫 NumberFormatException异常。
try-catch语句
使用该语句处理异常
try{
包含可能发生异常的语句
}
catch(ExceptionSubClass1 e){
//如果异常的语句是ExceptionSubClass1错误,就执行这里代码
……
}
catch(ExceptionSubClass2 e){
//如果异常的语句是ExceptionSubClass2错误,就执行这里代码
……
}
总结一下try试探有无异常,catch捕捉报错类型。
自定义异常类
顾名思义:就是你自己可以定义异常类
利用throws(s不要丢了)
举个栗子
拓展Exception类定义自己的子类
public class BankException extends Exception{
String message;
public BankException(int m, int n){
message = "入账资金为"+m+"是负数或者支出"+n+"是正数,不符合系统要求"
}
public String warnMess(){
return message;
}
}
自定义这个自己的异常类
public class Bank{
private int money;
public void income(int in ,int out) throws BankException{
if(in<=0||out>=0||int+out<=0){
throw new BankException(in,out);
}
int netIncome = int+out;
System.out.printf("本次计算的存收入是:%d元\n,netIncome)
money = money+netIncome;
}
public int getMoney(){
return money;
}
}
上面定义了这个你自己的异常类
下面是实现:
public class Example7_5{
public static void main (String arg[]){
Bank bank = new Bank();
try{
bank.income(200,-100);
bank.income(-100,-100);
}
catch(BankException e){
System.out.printf("收益计算过程出现如下问题:")
System.out.printf(e.warnMess());
}
System.out.printf("银行现在有%d元\n",bank.getmoney)
}
}
真累的一天