code: @Override
      protected void afterExecute(Runnable r, Throwable t) {
          super.afterExecute(r, t);
          if (t == null && r instanceof Future<?>) {
              try {
                  ((Future<?>) r).get();
              } catch (CancellationException ce) {
                  t = ce;
              } catch (ExecutionException ee) {
                  t = ee.getCause();
              } catch (InterruptedException ie) {
                  Thread.currentThread().interrupt(); // ignore/reset
              }
          }
          if (t != null) {
              ARouter.logger.warning(Consts.TAG, "Running task appeared exception! Thread [" + Thread.currentThread().getName() + "], because [" + t.getMessage() + "]\n" + TextUtils.formatStackTrace(t.getStackTrace()));
          }
      }
docs: /*
  线程执行结束，顺便看一下有么有什么乱七八糟的异常
  
  @param r the runnable that has completed
  @param t the exception that caused termination, or null if