关于try......catch的使用

有如下场景,我们想让一个线程中的循环不断执行,但是循环里的代码可能会抛异常,导致循环终止。这时候我们可以用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中被解决了,所以可以一直运行下去

你可能感兴趣的:(关于try......catch的使用)