写了下面的异常测试类
public class ExceptionTest {
public void getName(String cityName) throws RuntimeException {
try {
getSchoolName(cityName);
} catch (StringIndexOutOfBoundsException e) {
throw new RuntimeException("城市名称异常",e);
}
}
public void getSchoolName(String schoolName) throws StringIndexOutOfBoundsException{
if (schoolName.equals("**大学啊")){
throw new StringIndexOutOfBoundsException("大学名称异常");
}
}
public static void main(String[] args) {
String name = "**大学啊";
ExceptionTest exceptionTest = new ExceptionTest();
try {
exceptionTest.getName(name);
} catch (RuntimeException e) {
e.printStackTrace();
}
}
}
抛出的异常信息如下
java.lang.RuntimeException: 城市名称异常
at com.ticket.common.ExceptionTest.getName(ExceptionTest.java:9)
at com.ticket.common.ExceptionTest.main(ExceptionTest.java:26)
Caused by: java.lang.StringIndexOutOfBoundsException: 大学名称异常
at com.ticket.common.ExceptionTest.getSchoolName(ExceptionTest.java:15)
at com.ticket.common.ExceptionTest.getName(ExceptionTest.java:7)
... 1 more
Process finished with exit code 0
这是个简单的例子,我想说的是我们应该掌握从java异常调用栈获取信息的方法。
我们从异常分析java代码流程就应该是,第一个异常的最下面开,到第一个异常结束的地方,再到下一个异常最下面,再往上,如此循环,即可分析出整个代码的调用逻辑。
最后 由于春运快到了,给大家安利一个抢火车票的小程序心到抢票,微信扫码关注点击立即抢票即可
个人亲测效率很高,大家也可以加他们官方微信 xdticket 咨询。