rxjava: мгновенный поиск Android [дубликат]

Ваш Javascript будет выполняться на клиенте, а не на сервере. Это означает, что foo не оценивается на стороне сервера, и поэтому его значение не может быть записано в файл на сервере.

Лучший способ подумать об этом процессе - это как будто вы генерируя текстовый файл динамически. Текст, который вы генерируете, становится исполняемым кодом после того, как браузер интерпретирует его. Только то, что вы размещаете между тегами <?php, оценивается на сервере.

Кстати, создание привычки встраивать случайные фрагменты PHP-логики в HTML или Javascript может привести к серьезному запутанному коду. Я говорю от болезненного опыта.

26
задан Omar Kooheji 22 October 2008 в 11:41
поделиться

7 ответов

Хорошо, если какой-то другой Thread вызывает thread.interupt (), пока поток спал, вы получите Exception. И да, вы, вероятно, можете просто попробовать try..catch arround sleep () и игнорировать его;)

-2
ответ дан Jan Gressmann 27 August 2018 в 05:44
поделиться
  • 1
    Снижение рейтинга, потому что вы должны never игнорировать любое исключение, это приводит к недокументированным поведениям и ошибкам. Либо зарегистрируйтесь, либо пузырь. – Spencer Kormos 22 October 2008 в 18:21
  • 2
    Проглатывание InterruptedException компрометирует способность приложения отменить действия или закрыть своевременную информацию. Дополнительная информация здесь ibm.com/developerworks/library/j-jtp05236 – Kumar Abhinav 6 August 2014 в 11:44
  • 3
    Хотя определенно не следует игнорировать большинство исключений. Это яркий пример исключения, которое в некоторых случаях может быть проигнорировано. Например, когда ссылка на поток существует только в области видимости, тогда нет неожиданного поведения. Мы разработчики программного обеспечения и должны думать сами за себя. Если вы даже не спросите себя, почему лучше всего справляться с исключениями, вы, вероятно, плохой инженер. – Eldar Kersebaum 28 June 2017 в 12:03

Как говорили другие, это вызвано некоторым другим потоком, вызывающим interrupt() на спящем Thread объекте, который спал.

Что это означает на простом английском языке, это то, что какой-то другой поток решил для отмены спальной нити. Блок try / catch существует, поэтому вы можете изящно обрабатывать отмену потока и безопасно очищать любые ресурсы или закрывать любую операцию, которую он выполнял правильно.

Если вам действительно не нужно выполните любое из этого, тогда да, вам все равно нужен пустой блок catch. Но это Java для вас ...

5
ответ дан Eric des Courtis 27 August 2018 в 05:44
поделиться

Некоторые советы из Java Concurrency in Practice:

  • Распространять исключение (возможно, после некоторой очистки по конкретным задачам), что делает ваш метод также прерывистым методом блокировки; или
  • Восстановить статус прерывания, чтобы кодекс выше в стеке вызовов мог справиться с ним.
  • Только код, реализующий политику прерывания потока, может проглатывать запрос прерывания.
Не рекомендуется выполнять запросы на прерывание.
6
ответ дан jassuncao 27 August 2018 в 05:44
поделиться

Основной случай - когда кто-то называет Thread.interrupt () в вашем потоке.

Может быть безопаснее выкидывать RuntimeException, если это происходит, когда вы действительно не ожидая этого, но для очень простых случаев вы, вероятно, можете его игнорировать.

3
ответ дан Jon Skeet 27 August 2018 в 05:44
поделиться

Из javadocs :

Класс InterruptedException

Брошено, когда поток ждет, спя или временно приостановлен в течение длительного времени и другой поток прерывает его, используя метод прерывания в классе Thread.

Надеюсь, что ответит на ваш вопрос.

3
ответ дан Miguel Ping 27 August 2018 в 05:44
поделиться

Это происходит, когда что-то вызывает прерывание () в потоке. В этой статье Брайана Гетца объясняется механизм прерывания и как вы должны обрабатывать InterruptedExceptions:

«Самый распространенный ответ InterruptedException - проглотить его - поймать и сделать ничего (или, возможно, запишите его, что не лучше) - как мы увидим позже в листинге 4. К сожалению, этот подход отбрасывает важную информацию о том, что произошло прерывание, что может нарушить способность приложения отменить «Если вы поймали InterruptedException, но не можете его восстановить, вы должны сохранить доказательства того, что произошло прерывание [...]. Эта задача выполняется путем вызова прерывания () для «возобновления» текущего потока. »

24
ответ дан Pino 27 August 2018 в 05:44
поделиться
  • 1
    Спасибо, что подняли этот вопрос. Это PITA, чтобы управлять InterruptedExceptions, но это важно. – Spencer Kormos 22 October 2008 в 18:22

InterruptedException - проверенное исключение, поэтому, к сожалению, вы не можете просто игнорировать его. В большинстве простых случаев вам не нужно ничего делать в предложении catch, потому что вы уверены, что этого не произойдет.

Из API

Брошено, когда поток ожидает, спящий или в противном случае приостанавливается в течение длительного времени, а другой поток прерывает его с использованием метода прерывания в классе Thread.

-1
ответ дан Vincent Ramdhanie 27 August 2018 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: