docs: public void onError(Throwable error) {
          if (error instanceof InterruptedException) {
              currentThread().interrupt();
          }
  
          if (selectionKey != null) {
              selectionKey.cancel();
          }
  
          // mechanism for the handlers to intercept and modify the
          // throwable.
          try {
              for (ChannelHandler handler : handlers()) {
                  handler.interceptError(error);
              }
          } catch (Throwable newError) {
              error = newError;
          }
  
          errorHandler.onError(channel, error);
      }