code: public void onError(def<Void> handler) {
                  this.handler = handler;
                  while (!container.inProcess) {
                          // block
                          Style.sleep(1);
                  }
                  synchronized (lock) {
                          if (null != throwable) {
                                  handler.apply(Style.$(throwable));
                          }
                  }
          }
docs: Handle exceptions that async task thrown.<br>
  if there's already an exception thrown when this method invoked, the
  handling process would be taken in current thread.<br>
  Otherwise, the process would be taken at async thread when exception
  occurred.<br>
  use {@link #awaitError(def)} if you need to force the handling
  process taken on current thread.
  
  @param handler a function to invoke when occurred an exception<br>
  for all Throwable caught from the async task would be
  packed into StyleRuntimeException
  @see #awaitError(def)
  @see StyleRuntimeException