HttpRequest.GetResponse中没有抛出异常

时间:2016-04-08 04:38:11

标签: c#

下面是C#代码片段,用于从Internet URI源获取Http Web响应。    当客户端无法获得响应时,它将抛出异常    我很想知道是否有任何条件都没有例外    抛出,但HttpStatusCode不正常(即不是范围200-299)。

基本上我需要知道什么是不抛出异常的坏状态代码。

public class HelloWorld{

     public static void main(String []args){
         String s= "•";
         int a =  s.charAt(0);
        System.out.println("Ascii code is  "+ a);

     }
}

1 个答案:

答案 0 :(得分:2)

4xx范围内的任何状态代码都被定义为客户端错误,并会生成ProtocolException。 (400-Bad Request,401-Unauthorized等...)
5xx范围内的任何结果都被定义为服务器错误,并将导致CommunicationException。 (500内部服务器错误,502坏网关等。)

如果要实现重试机制,这很有用。如果异常是CommunicationException则重试是有意义的,因为这可能是暂时性错误(连接失败,DNS解析失败),但如果异常是ProtocolException,则重试是多余的,因为它应该始终失败。

是否将任何其他状态代码视为错误情况取决于客户端与服务器之间的合同,但以上是HTTP标准定义的那些

List of HTTP status codes