在实际开发的时候,我们可能会遇到各类异常流程的封装返回。比如获取那一步的函数发生了什么样的错误,这个时候就需要封装中间函数的信息到异常信息中。
写了一个小demo以便理解,JAVA异常处理的抛出和捕获。
一个简单的自定义异常类
public class StepException extends Exception {
public StepException(String errorMsg) {
super(errorMsg);
}
}
封装异常信息
/**
* throw与throws的使用demo
* 目的:既保留原报错信息,又可以在中间层封装一次自己想要的返回信息
*/
public class Baulk {
/**
* calculate()方法有可能报错,抛出给调用它的函数处理
* @return
* @throws Exception
*/
public static int calculate() throws Exception {
int result = 3/0;
return result;
}
/**
* useCalculate()函数调用了calculate(),对它有可能出现的错误进行捕获,
* 并且封装成自定义的异常,然后再抛出自己封装的异常给上一级调用useCalculate()的函数
* @return
* @throws StepException
*/
public static int useCalculate() throws StepException {
int res = 0;
try {
res = calculate();
} catch (Exception e) {
throw new StepException("useCalculate() error:"+e.toString());
}
return res;
}
/**
* 入口函数中调用了useCalculate()函数,对它可能出现的异常进行捕获,
* 如果捕获到,则打印出异常
* @param args
*/
public static void main(String[] args) {
try {
useCalculate();
} catch (StepException e) {
// e.printStackTrace();
System.out.println(e.getMessage());
}
System.out.println("program over");
}
}
输出结果:
此时输出的结果就可以带上调用的中间函数的信息。。