有时候代码执行过程中,出现一些不能处理的情况,就会报错,还影响之后的代码执行,就需要跳过异常。
上面这情况报错了,还影响了下面的打印。beanshell用try和catch处理异常,下面是try的用法,和if有点像。第一个分支走不通,就走后面的分支。
try {// 可能会抛出异常的代码
} catch (SpecificException e) {// 处理特定异常
} catch (Exception e) {// 处理其他异常
} finally {// 清理代码,无论是否发生异常都会执行
}
下面是先写一个简单的,try里面出现异常,再catch抛出异常。
上面抛出的异常,后面加上了e,就是遇到了具体什么异常,像图片里打印的log,抛出异常:ArithmeticException。用法里的特定异常,就是处理这个,直接写进去就行。下面放上一个完整的代码,如果计算不通过,判断是不是因为除数是0,如果不是这个异常,再抛出其他异常。
try{a=10/0;
}
catch (ArithmeticException e){log.info("除数不能是0");
}
catch (Exception e){log.info("计算出现错误"+e);
}
log.info("执行出错后还继续执行");
这个try只能处理一部分异常,如果出现语法错误,是处理不了的,比如,断言时候经常遇到没取到值的情况。
这是ERROR,即使加上try也不好使,并不能正确输出想要的内容。
最后try跳过异常是好,但是最好能抛出详细原因,是什么导致的异常,不然真遇到异常,只看到没处理,但是不知道哪里有问题导致的没处理。