Какой класс исключений Java использовать для Ошибок HTTP?

Может быть, это то, что вы хотите.
Он использует 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
24
задан Steven Huwig 17 October 2008 в 13:56
поделиться

4 ответа

Если это не Исключение в принципах проектирования HttpClient, а Исключение в Вашем коде, то создайте свои собственные Классы исключений. (Как подкласс org.apache.commons.httpclient. HttpException)

11
ответ дан 29 November 2019 в 00:01
поделиться

Проверьте страницу на Обработка исключений для HttpClient

Для ответа на вопрос, хотя, кажется, существует org.apache.commons.httpclient. Класс HttpException , который является, вероятно, подходящим вариантом.

, Если бы Вам действительно нужен пользовательский класс исключений для этого, я думал бы java.io. IOException был бы корректным суперклассом для использования.

9
ответ дан 29 November 2019 в 00:01
поделиться

Я сказал бы, что это зависит от того, для чего Вы используете 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 страницах, или если что-то полезное для пользователя, чтобы сделать, или поисковая форма, или просто полезное сообщение об ошибке. В зависимости от Вашего варианта использования можно хотеть просто показать контент ответа, а не выдать исключение.

4
ответ дан 29 November 2019 в 00:01
поделиться

Существует org.apache.commons.httpclient. HttpException, если Вы хотите исключение библиотеки. Мы также иногда создавали наше собственное в определенных целях, и создание исключения для определенных Кодов состояния HTTP и универсальное для и неожиданный код статуса.

2
ответ дан 29 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

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