Как обрабатывать ошибочные значения атрибутов в коротких кодах Wordpress? [Дубликат]

Создать расширение для Array:

extension Array {

    var string: String? {

        do {

            let data = try JSONSerialization.data(withJSONObject: self, options: [.prettyPrinted])

            return String(data: data, encoding: .utf8)

        } catch {

            return nil
        }
    }
}
0
задан Don Rhummy 21 March 2014 в 02:38
поделиться

2 ответа

Бросок исключений - плохая идея, короткий код будет использоваться в постсодержащем содержании, поэтому нет практического способа поймать его, и это приведет к фатальной ошибке. Это плохо, потому что

  1. Большинство людей не знают, как с этим справиться (см. Все вопросы здесь об ошибках или пустых страницах).
  2. Существует возможность эффективно отключить большую часть сайта, если будет называться короткий код например, в сообщении на домашней странице. Стоит ли приводить к фатальной ошибке, потому что ваш короткий код не может быть выполнен правильно?

Гораздо лучше «тихо» и

  1. Записать на php журнал. Используйте error_log и т. Д., Чтобы записать сообщение журнала, не выставляя ничего на сайт. Имеет ли преимущество отсутствие каких-либо уродливых ошибок для пользователей, но недостаток опять-таки быть трудным для вашего среднего администратора Wordpress для разработки того, что происходит
  2. Печатать ошибку. Распечатайте описательное сообщение об ошибке. Дает администратору некоторое представление о том, что происходит, и откуда происходит ошибка, и избегает их прихода сюда с вопросами «shortcode not working». Однако это может быть неприемлемо в производственном коде, поскольку оно представляет ошибку пользователю и является немного уродливым.

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

Почему бы не добавить параметр, чтобы администратор мог выбрать, что произойдет, когда что-то пойдет не так?

2
ответ дан Max 21 August 2018 в 15:24
поделиться

Я был перенаправлен на эту страницу, так как я задал тот же вопрос и не нашел ответа.

Глядя на принятый ответ, я не совсем согласен, но это позволяет мне понять что делать. (Я даже не говорю о метании и исключении, которое не имеет смысла).

Реальный вопрос на самом деле заключается в том, чтобы задаться вопросом, кто будет получателем сообщений об ошибках? : Автор, который имеет право опубликовать сообщение или страницу.

Итак, это не админ, и этот ошибочный код не будет выпущен.

Это сообщение об ошибке должно появиться, когда издатель, пишущий короткий код на своей странице / посту, неправильно использует его. Фактически, во время предварительного просмотра. Если ошибка регистрируется в журнале php без пауз, пользователь может даже не знать, что он существует! Он может заключить, что плагин не работает и удалит его. Я думаю, что это не желаемая цель.

Итак, я считаю, что лучшим решением является печать ошибки на подготовленной странице.

Как я вижу, ответ датируется 2014 годом, и ничего не было задокументировано, поскольку на странице https://developer.wordpress.org/plugins/the-basics/best-practices/ я думаю, что он может заслужить небольшое добавление.

1
ответ дан humhum 21 August 2018 в 15:24
поделиться
Другие вопросы по тегам:

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