关于try......catch的使用
2019-03-07 本文已影响0人
阿长_一个程序员
有如下场景,我们想让一个线程中的循环不断执行,但是循环里的代码可能会抛异常,导致循环终止。这时候我们可以用try来包围可能产生error的代码
public void queueListener() { while(true) { try { 执行的代码..... } catch (Exception e) { e.printStackTrace(); ..... } }
这样循环就不会终止了。
弄个好玩的,如果我们想让try中的代码在产生某些异常时终结程序的运行,可以这样做
public void queueListener() throw Exception { while(true) { try { 执行的代码..... } catch (IOException e) { e.printStackTrace(); throws new IOException(); ..... } }
这样产生异常时这个运行的方法会被终结,但是这样很无聊,明明catch中做的就是处理异常的事,处理完异常又把异常抛了出去,嗯?????
总结:
- 方法头部必须带 throw xxxException的,会因为方法内某些语句的报错而终结
- 没throw xxxException的,表示异常不会出现或者已经在catch中被解决了,所以可以一直运行下去