Создать расширение для 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
}
}
}
Бросок исключений - плохая идея, короткий код будет использоваться в постсодержащем содержании, поэтому нет практического способа поймать его, и это приведет к фатальной ошибке. Это плохо, потому что
Гораздо лучше «тихо» и
error_log
и т. Д., Чтобы записать сообщение журнала, не выставляя ничего на сайт. Имеет ли преимущество отсутствие каких-либо уродливых ошибок для пользователей, но недостаток опять-таки быть трудным для вашего среднего администратора Wordpress для разработки того, что происходит Какой из них вы выбираете, зависит от того, что, по моему мнению, имеет короткий код, и насколько это важно. Не зная больше о том, что вы пишете, я не могу дать жесткий и быстрый ответ, и даже тогда это будет субъективно. Но серьезно не бросайте исключение.
Почему бы не добавить параметр, чтобы администратор мог выбрать, что произойдет, когда что-то пойдет не так?
Я был перенаправлен на эту страницу, так как я задал тот же вопрос и не нашел ответа.
Глядя на принятый ответ, я не совсем согласен, но это позволяет мне понять что делать. (Я даже не говорю о метании и исключении, которое не имеет смысла).
Реальный вопрос на самом деле заключается в том, чтобы задаться вопросом, кто будет получателем сообщений об ошибках? : Автор, который имеет право опубликовать сообщение или страницу.
Итак, это не админ, и этот ошибочный код не будет выпущен.
Это сообщение об ошибке должно появиться, когда издатель, пишущий короткий код на своей странице / посту, неправильно использует его. Фактически, во время предварительного просмотра. Если ошибка регистрируется в журнале php без пауз, пользователь может даже не знать, что он существует! Он может заключить, что плагин не работает и удалит его. Я думаю, что это не желаемая цель.
Итак, я считаю, что лучшим решением является печать ошибки на подготовленной странице.
Как я вижу, ответ датируется 2014 годом, и ничего не было задокументировано, поскольку на странице https://developer.wordpress.org/plugins/the-basics/best-practices/ я думаю, что он может заслужить небольшое добавление.