Может быть, это то, что вы хотите.
Он использует apply
, чтобы добавить дополнительный столбец к каждому срезу, определенному 2-м измерением массива, и после того, как это будет сделано, правильно устанавливает окончательные размеры.
ar2 <- sapply(1:5, function(i){
new <- seq_len(NROW(ar1[, i, ])) + (i - 1)*NROW(ar1[, i, ])
cbind(ar1[, i, ], new)
})
dim(ar2) <- c(91, 5, 5)
Приведенный выше код создает новый массив, если вы хотите, вы можете переписать исходный.
Чтобы вернуть оригинал, это будет сделано.
n <- dim(ar2)[2]
ar1_back <- sapply(1:5, function(i){
ar2[, -n, i]
})
dim(ar1_back) <- c(91, 5, 4)
identical(ar1, ar1_back)
#[1] TRUE
Если это не Исключение в принципах проектирования HttpClient, а Исключение в Вашем коде, то создайте свои собственные Классы исключений. (Как подкласс org.apache.commons.httpclient. HttpException)
Проверьте страницу на Обработка исключений для HttpClient
Для ответа на вопрос, хотя, кажется, существует org.apache.commons.httpclient. Класс HttpException , который является, вероятно, подходящим вариантом.
, Если бы Вам действительно нужен пользовательский класс исключений для этого, я думал бы java.io. IOException был бы корректным суперклассом для использования.
Я сказал бы, что это зависит от того, для чего Вы используете HTTPClient. Например, SDK PayPal использует HttpClient для передачи вызовов API сервера PayPal, но не удается проверить Код ответа HTTP, когда это сделано. Я исправил свою копию так, чтобы, если код ответа не 200, это бросило PayPal FatalException с соответствующим сообщением. Поэтому вызывающая сторона не интересуется HTML или любой из деталей этого сообщения HTTP, и даже не интересуется тем, что мы используем HTTP в качестве транспорта. Если вызов успешен тогда, орган по ответу содержит детали транзакции, которые извлечены и помещены в объект ответа; иначе это содержит HTML, который бесполезен. HTTP является просто транспортом в этом случае, таким образом, определенные коды ответа указывают на ошибки, о которых можно сообщить с помощью исключений. Поскольку это - часть SDK PayPal, я использовал Класс исключений PayPal. В некоторой другой системе или библиотеке, я использовал бы подтип любых исключений, которые уже использует библиотека. Например, если бы я писал библиотеку GMail, которую считает Gmail доступов, я, вероятно, создал бы класс GMailException и подкласс, с которым для различных видов исключений сталкивается библиотека. С другой стороны, можно использовать что-то как IOException.
причина HttpClient заставляет Вас проверить, что коды ответа - то, потому что ответ может быть полезным, даже если код ответа не 200. Некоторые веб-сайты помещают полезный текст на 404 страницах, или если что-то полезное для пользователя, чтобы сделать, или поисковая форма, или просто полезное сообщение об ошибке. В зависимости от Вашего варианта использования можно хотеть просто показать контент ответа, а не выдать исключение.
Существует org.apache.commons.httpclient. HttpException, если Вы хотите исключение библиотеки. Мы также иногда создавали наше собственное в определенных целях, и создание исключения для определенных Кодов состояния HTTP и универсальное для и неожиданный код статуса.