Nano Hash - криптовалюты, майнинг, программирование

Головоломка Spotify: избежать ошибки обработки исключений

Я работаю над головоломкой для Spotify (см. здесь). Я пишу решение на Java, и я получил свой код для передачи двух примеров входных данных в Eclipse, на ideone.com и через терминал на моем osx, все без ошибок. Однако всякий раз, когда я отправляюсь к боту Spotify, я получаю следующий минималистский ответ:

Мы протестировали ваше решение, и при этом, к сожалению,

обнаружил следующую ошибку: Ошибка времени выполнения

Исключение не было поймано

Вот в основном то, что я делаю, чтобы читать ввод:

scn = null;

try {
    scn = new Scanner(System.in);

      if(scn.hasNext()){
      strIn = scn.nextLine();
      //do work on first line of input
      }

      if(scn.hasNext()){
      strIn = scn.nextLine();
      //do work on second line of input
      }

      //do work on the rest of the lines
      while (scn.hasNext()) {
      strIn = scn.nextLine();

      if(/*reached last line*/){
           break;
      }
      }

  }

  catch(Exception e){
      System.out.println("Exception caught");
      System.out.println(e.getStackTrace());

  } finally {
      if (scn != null) {
          scn.close();
      }
  }

Вы можете просмотреть мое полное решение здесь. Обратите внимание, что мое фактическое представление объявляет мой класс общедоступным в соответствии с рекомендациями по отправке Spotify.

Поскольку проблема требует только простого ввода-вывода из стандартного ввода в стандартный вывод, кажется, что мне нужно учитывать только любые исключения, которые могут быть вызваны, когда я читаю ввод в своем блоке try. Я предоставляю блок catch для всех исключений (плохая форма, которую я знаю), но разве это не должно с этим справиться? Может быть, я пренебрегаю некоторыми исключениями, которые могут появляться где-то еще?

Возможно, я не учитываю какую-то небольшую особенность в том, как боты Spotify анализируют входные данные, но их ответное сообщение и рекомендации затрудняют точное определение проблемы. Я прошу прощения, если этот вопрос слишком локализован - другие вопросы-головоломки Spotify рассматривались таким образом - но я полагаю, что мои вопросы ввода-вывода и исключения достаточно широки, и, возможно, у людей есть хорошие ответы о том, как могут работать боты Spotify. Кроме того, прошло некоторое время с тех пор, как я кодировал на Java, поэтому любые другие комментарии, безусловно, приветствуются.


  • Я сделал: обратите внимание, что мое фактическое представление объявляет мой класс общедоступным в соответствии с рекомендациями по отправке Spotify. 05.02.2013
  • Вы когда-нибудь заставляли его работать? Я с той же проблемой. Я получил свой код, чтобы работать нормально на моем конце. Но не с их стороны. 17.04.2013
  • Эй @Sloth: да, я сделал. На самом деле это оказалась маленькая проблема, на решение которой у меня ушло намного больше времени, чем следовало бы. Мне нужно было изменить тип данных переменной, удерживающей воспроизведение трека, на long с int. Тестовые данные, которые использовал Spotify, содержали действительно большие числа, которые мои целые числа не могли удержать, и поэтому программа продолжала ломаться! Надеюсь это поможет. 20.04.2013

Ответы:


1

Просто чтобы официально заявить, что возникшее исключение было не исключением ввода-вывода, как я думал, а фактически исключением целочисленного переполнения. Мне нужно было изменить тип данных переменной, удерживающей воспроизведение трека, на long с int. Тестовые данные, которые использовал Spotify, должны были иметь очень большие числа, которые мои целые числа не могли удержать, и поэтому программа продолжала ломаться! Надеюсь, это поможет людям.

27.05.2013
  • Как ты смог это понять? Угадать и проверить? 19.08.2013
  • @ user1850672 Немного об этом, а также общение с друзьями, другими программистами и т. д. 19.08.2013
  • У меня похожая проблема с программой catsvsdog. Я просто хочу, чтобы моя программа по крайней мере сообщала о неправильном выводе вместо этого проклятого исключения. Вам интересно посмотреть, случайно? 21.08.2013
  • @thesquid24 эй, я немного опоздал, но если вам все еще нужна другая пара глаз, не стесняйтесь указывать мне код 25.08.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..