В настоящее время я работаю над алгоритмом R, который предсказывает шансы команды на победу в финале НБА на основе возможных приобретений определенных игроков. Часть программы зависит от ввода пользователя (какая команда, какой игрок подписывается и т. д.), И я хотел создать отказоустойчивые системы на случай, если пользователь ввел недопустимые аргументы. У меня есть опыт кодирования и выдачи исключений на Java, но мне было интересно, как лучше всего добавить их в R? В частности, я искал, как генерировать исключения, сопоставимые с «RunTimeException» и «IndexOutOfBoundsException», как это видно в Java.
Бросьте: stop. Поймать: tryCatch или withCallingHandlers с withRestarts. К сожалению, ошибки в R почти полностью текстовые, а это означает, что вам нужен grep для конкретных ошибок. Есть несколько пакетов, которые предоставляют типы ошибок, но они (я думаю) исключение (каламбур). Некоторые другие связанные вопросы: stackoverflow.com/questions/20572288/… и stackoverflow.com/questions/32167959/….
Отличный ресурс - это глава Advanced R Hadley Wickham об исключениях здесь adv-r.had.co.nz/Exceptions-Debugging.html
В приведенном выше ресурсе он упоминается лишь вкратце, но пакет assertthat позволяет вам писать более явные сообщения об ошибках, когда входные данные или любой другой объект внутри вашей функции не того типа, который вы ожидаете от них.
@ r2evans спасибо, я добавлю это в свой код!
@GordonShumway Я посмотрю, спасибо за ссылку
@CalumYou я могу использовать assertthat несколько раз в моем коде, тогда спасибо!





Заглянуть в
tryCatch?