@Override
  public String getEventMessage(LocatableEvent event) {
    String exceptionName = (getQualifiedName() != null) ? getQualifiedName() : CommonClassNames.JAVA_LANG_THROWABLE;
    String threadName = null;
    if (event instanceof ExceptionEvent exceptionEvent) {
      try {
        exceptionName = exceptionEvent.exception().type().name();
        threadName = exceptionEvent.thread().name();
      }
      catch (Exception ignore) {
      }
    }
    Location location = event.location();
    String locationQName = DebuggerUtilsEx.getLocationMethodQName(location);
    String locationInfo;
    try {
      String file = location.sourceName();
      int line = DebuggerUtilsEx.getLineNumber(location, false);
      locationInfo = JavaDebuggerBundle.message("exception.breakpoint.console.message.location.info", file, line);
    }
    catch (AbsentInformationException e) {
      locationInfo = JavaDebuggerBundle.message("exception.breakpoint.console.message.location.info.absent");
    }
    if (threadName != null) {
      return JavaDebuggerBundle.message("exception.breakpoint.console.message.with.thread.info",
                                        exceptionName, threadName, locationQName, locationInfo
      );
    }
    else {
      return JavaDebuggerBundle.message("exception.breakpoint.console.message", exceptionName, locationQName, locationInfo);
    }
  }
@Override
  public String getEventMessage(LocatableEvent event)